silverlight4学习中解决的问题
我知道题目起的有点大,大侠们不要骂我。最近
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。
解决方案:有时候项目不用LINQ,从数据库取出来的数据还是保存在DataSet中,但是SL中是不认Dataset的。所以必须要将DataSet转换成List泛型传给SL。WCF中引用的Model层的类型在SL中是可以识别的,不用在SL工程中另外引用。
问题三:列表控件无法添加自定义列绑定的字段。
解决方案:首先要设置该属性 AutoGenerateColumns="False"。其次要添加一个自定义列格式如下图代码。添加的自定义列只能手工编辑xaml文件。

<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
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· .NET周刊【3月第1期 2025-03-02】
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· [AI/GPT/综述] AI Agent的设计模式综述