我创建了一个银光项目,我试图在我的主页面中加载数据网格。当我发现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;
}
答案 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>