试图在silverlight应用程序中使用WCF服务
本文关键字:WCF 服务 应用程序 silverlight | 更新日期: 2023-09-27 18:10:37
我创建了一个银光项目,我试图在我的主页加载一个数据网格。当我知道silverlight不支持ADO.net时,我使用了支持silverlight的WCF服务。我遵循这里的示例http://www.dotnetcurry.com/ShowArticle.aspx?ID=228
我能够从数据库中获取数据到服务中,但无法在我的页面中显示,并且它不会抛出任何异常。它和绑定构型有关系吗?因为我能够从浏览器访问WCF服务,所以我认为我无法加载到我的页面的数据网格。这是我的代码
XAML: <Grid x:Name="LayoutRoot">
<sdk:DataGrid x:Name="DetailsGrid" AutoGenerateColumns="False" Height="430" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top" Width="576" />
</Grid>
c#: DataServiceClient client = new DataServiceClient();
client.ResourcesListCompleted +=new EventHandler<ResourcesListCompletedEventArgs>(client_ResourcesListCompleted);
client.ResourcesListAsync();
InitializeComponent();
void client_ResourcesListCompleted(object sender, ResourcesListCompletedEventArgs e)
{
DetailsGrid.ItemSource = e.Result;
}
您已经设置了AutoGenerateColumns="False"
,但是(假设您没有在代码中遗漏它)没有指定您想要显示哪些列。
在第一个实例中设置AutoGenerateColumns="True"
以确保您正在获取数据。这将显示数据集中每条记录的所有数据。如果你不想把所有的数据设置为False
,然后指定你想要使用的列。因此,假设您的数据中有一个名为FirstName
的字段,您将拥有:
<sdk:DataGrid x:Name="dg" AutoGenerateColumns="False">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="First Name"
Binding="{Binding FirstName}" />
</sdk:DataGrid.Columns>
....
</sdk:DataGrid>