silverlight4学习中解决的问题

本文解决Silverlight(SL)项目中与WCF服务交互时出现的问题,包括配置文件设置、数据传递方式及列表控件自定义列绑定等。

  我知道题目起的有点大,大侠们不要骂我。最近

  sl操作数据库以及调用网站的其他逻辑必须通过公共的接口服务才能实现,具体实现可参照下面链接

http://www.silverlightchina.net/html/tips/2009/0723/88.html

 

  问题一:我以petshop的结构创建好了网站的各个层,但是WCF在调用BLL层时出错。

  解决方法:如果大家采用原始petshop的那种构架webconfig文件中一定有下面的代码


  
< appSettings >
< add key ="DAL" value ="SQLServerDAL" />
</ appSettings >

  这段代码除了在web下的webconfig文件中需要写以外,还需要在wcf项目的webconfig中添加。当然还有数据库的链接字符串。因为在factory层都是使用ConfigurationManager.AppSettings["DAL"];来获取变量的,而该代码是使用本应用中的配置文件中的DAL节点的值。

  问题二:SL项目中不能引用Model层,不能使用DataSet。

2010062515563533.jpg

  解决方案:有时候项目不用LINQ,从数据库取出来的数据还是保存在DataSet中,但是SL中是不认Dataset的。所以必须要将DataSet转换成List泛型传给SL。WCF中引用的Model层的类型在SL中是可以识别的,不用在SL工程中另外引用。

  问题三:列表控件无法添加自定义列绑定的字段。

  解决方案:首先要设置该属性 AutoGenerateColumns="False"。其次要添加一个自定义列格式如下图代码。添加的自定义列只能手工编辑xaml文件。

ContractedBlock.gif ExpandedBlockStart.gif 代码

   
< sdk:DataGrid Height ="156" HorizontalAlignment ="Left"
Margin
="93,79,0,0" Name ="dataGrid1" VerticalAlignment ="Top" Width ="223" AutoGenerateColumns ="False" ItemsSource ="{Binding}" >
< sdk:DataGrid.Columns >
< sdk:DataGridTextColumn Width ="SizeToHeader" Header ="姓名" Binding ="{Binding _name}" />
< sdk:DataGridTextColumn Width ="SizeToHeader" Header ="年龄" Binding ="{Binding _age}" />
< sdk:DataGridTextColumn Width ="SizeToHeader" Header ="性别" Binding ="{Binding _sex}" />
</ sdk:DataGrid.Columns >
</ sdk:DataGrid >

这里有一点需要注意。 Binding="{Binding _name}"。我在model中定义如下:

 


  
private string _name;

/// <summary>
/// 姓名
/// </summary>
public string name
{
set {_name = value;}
get { return _name;}
}

 

 

在绑定自定义列的时候要绑定私有的属性,不能绑定公有属性。

开发环境VS2010+SL4

转载于:https://www.cnblogs.com/lts8989/archive/2010/06/25/1765249.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值