我有以下表格:C#WPF XAML绑定到数据表
公司{CompanyID,公司名称}
新政{CompanyID,值}
而且我有一个列表框:
<ListBox Name="Deals"
Height="100" Width="420" Margin="0,20,0,0" HorizontalAlignment="Left" VerticalAlignment="Top"
Visibility="Visible" IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding}" SelectionChanged="Deals_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding companyRowByBuyFromCompanyFK.CompanyName}" FontWeight="Bold" />
<TextBlock Text=" -> TGS -> " />
<TextBlock Text="{Binding BuyFrom}" FontWeight="Bold" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
正如你所看到的,我想显示CompanyName而不是外键的ID。关系“companyRowByBuyFromCompanyFK”存在,就像在Deals_SelectionChanged中我可以访问Deals行的companyRowByBuyFromCompanyFK属性,我也可以访问该行的CompanyName属性。
是因为XAML绑定使用[]索引器而无法工作的原因?而不是DataTable中CompanyRows的属性?
目前即时得到的值,如
- - > TGS - > 3
- - > TGS - > 4
编辑绑定错误更新
System.Windows.Data Error: 39 : BindingExpression path error: 'companyRowByBuyFromCompanyFK' property not found on 'object' ''DataRowView' (HashCode=30295189)'. BindingExpression:Path=companyRowByBuyFromCompanyFK.CompanyName; DataItem='DataRowView' (HashCode=30295189); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
看起来像它没有将DataRowView项目转换为SuppliersRo w
完成此操作的最佳方法是什么?
制作一个转换器,使用被引用为自定义参数的表转换外键。
为每个表创建表视图?由于我有相当多的有外键的表,所以这会很长时间。
如果添加一丝你的绑定: {绑定路径= companyRowByBuyFromCompanyFK.CompanyName,诊断:PresentationTraceSources.TraceLevel =高} 当列表框结合看你的输出窗口,它说什么了?这可能会让我们更深入地了解绑定中的失败。 – 2010-04-14 16:34:08
Omg谢谢你!我总是忘记输出窗口! Wwhy不会显示在错误窗口!我现在修复它:)谢谢你的提示! – 2010-04-14 22:48:08