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

时间:2011-10-07 15:52:56

标签: c# asp.net silverlight wcf

我创建了一个银光项目,我试图在我的主页面中加载数据网格。当我发现Silverlight不支持ADO.net时,我使用了支持银光的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;

    }

1 个答案:

答案 0 :(得分:1)

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