试图在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;
    }

试图在silverlight应用程序中使用WCF服务

您已经设置了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>