我的ASP.NET网站中有我的数据模型,我正在尝试检索tbl_company记录并将这些记录绑定到silverlight中的数据网格 - 非常简单。
我设置了数据库,因此tbl_company有一个链接到tbl_company_scope的外键(company_scope_id)。从tbl_company_scope我基本上想要显示列“范围”。我在Silverlight中的代码如下:
<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding name, Mode=TwoWay}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock Text="{Binding CompanyScope.scope}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
(所有命名等都是正确的,但基本上“范围”将不会显示我绑定到datagrids ItemSource)
有谁知道如何在数据网格中显示范围列?
干杯
答案 0 :(得分:1)
我刚刚测试了你的代码而你是对的它应该像你说的那样工作,感谢你的回复,我想我需要去了解更多有关ADO.NET EF的信息。
再次欢呼。
答案 1 :(得分:0)
我在DataGrid中快速测试了“点”绑定,它按预期工作。我基本上拿走了你的Xaml并连接了一些POCO数据类。这是代码:
<data:DataGrid x:Name="dgCompanies" Grid.Row="0" AutoGenerateColumns="False">
<data:DataGrid.Columns>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name, Mode=TwoWay}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
<data:DataGridTemplateColumn>
<data:DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<TextBlock Text="{Binding CompanyScope.Scope}"></TextBlock>
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
数据类:
public class CompanyScope
{
public string Scope { get; set; }
}
public class Company
{
public string Name { get; set; }
public CompanyScope CompanyScope { get; set; }
}
最后,构造函数背后的代码:
ObservableCollection<Company> companies = new ObservableCollection<Company>
{
new Company { Name="Company One", CompanyScope=new CompanyScope { Scope="Some Scope" }},
new Company { Name="Company Two", CompanyScope=new CompanyScope { Scope="Some Other Scope" }},
new Company { Name="Company Three", CompanyScope=new CompanyScope { Scope="More Scope" }}
};
dgCompanies.ItemsSource = companies;
我在网格中得到了2列的预期结果,一个显示公司名称,另一个显示其范围。你确定你的Scope对象也被加载了 - 也许你加载了公司而不是他们的Scopes。