学SL有一段时间了,可是总感觉缺少点什么,那就是实际应用,怎么能把SL应用到我的项目中呢?一直是一个难题,我是个懒人喜欢用Dataset来帮我做一些底层数据访问的工作,SL毕竟是表示层的技术,对数据访问是门外汉,只能用过wcf或webservice来实现异步调用,今天把我的学习笔记给大家看看,没有太高深的技术,只是共享而已,大家如果有别的方法欢迎指教!
本文实例源码下载
新建一个Silverlight应用程序,再选择web应用程序
在webapplication中添加一个数据集(Dataset),我用的是“NORTHWND.MDF”大家可以去ms网站去下载。
在查询里面添加一个
SELECT CustomerID, CompanyName, ContactName, ContactTitle, Address, City, Region, PostalCode, Country, Phone, Fax FROM Customers WHERE (City LIKE '%' + @City + '%')
新建一个“CustomersClass.cs” 实体类
为了操作方便,我只选择其中几个字段内容,大家有需要可以自己添加;
下面开始添加webservice,这个是重点:
最后别忘了把动态端口改成固定的!!
下面我来Silverlight,添加“服务引用”“发现”,这些大家都很熟了,不详细说了!
在Page.xaml文件中添加

点击展开
<Grid x:Name="LayoutRoot" Background="White">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<StackPanel Height="Auto" Margin="0,13,0,0" VerticalAlignment="Top" Orientation="Horizontal"
HorizontalAlignment="Right" Width="385">
<TextBlock Height="21" Width="27" Text="City:" TextWrapping="Wrap" d:LayoutOverrides="Width, Height"
HorizontalAlignment="Center" VerticalAlignment="Center" Margin="0,0,20,0"/>
<TextBox x:Name="CityText" Height="21" Width="86" Text="" TextWrapping="Wrap"
HorizontalAlignment="Stretch" VerticalAlignment="Center" Margin="0,0,22,0"/>
<Button x:Name="Seach" Height="Auto" HorizontalAlignment="Right" Margin="0,0,14,0"
VerticalAlignment="Center" Width="95" Content=" Seach" Click="Seach_Click"/>
<ProgressBar x:Name="PBar" Height="13" Width="108" IsIndeterminate="True" Visibility="Collapsed"/>
</StackPanel>
<data:DataGrid x:Name="DataGrid" HorizontalAlignment="Stretch" AutoGenerateColumns="False"
Margin="8,49,8,20" Width="Auto" IsReadOnly="True">
<data:DataGrid.Columns >
<data:DataGridTextColumn Header="CustomerID" Width="auto" Binding="{Binding CustomerID}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="CompanyName" Width="auto" Binding="{Binding CompanyName}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="ContactName" Width="auto" Binding="{Binding ContactName}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="ContactTitle" Width="auto" Binding="{Binding ContactTitle}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="Address" Width="auto" Binding="{Binding Address}">
</data:DataGridTextColumn>
<data:DataGridTextColumn Header="City" Width="auto" Binding="{Binding City}">
</data:DataGridTextColumn>
</data:DataGrid.Columns>
</data:DataGrid>
</Grid>
编写C#代码: