WPF-从id->子表字段绑定DataGridTextColumn

WPF-从id->子表字段绑定DataGridTextColumn,wpf,data-binding,datagrid,Wpf,Data Binding,Datagrid,我有一个由sql表填充的datagrid。其中一个字段是与数据库中的另一个表相对应的id。在数据库中显示此字段时,我希望将其显示为引用子表中名称字段的TextBlock/DataGridTextColumn。子表作为主窗口的DataContext在视图模型中预加载 我一直在研究属性索引器,试图做到这一点,但似乎索引不能是可变的,例如 <DataGridTextColumn Header="Supplier name" Binding="{Binding Path=DataContext.S

我有一个由sql表填充的datagrid。其中一个字段是与数据库中的另一个表相对应的id。在数据库中显示此字段时,我希望将其显示为引用子表中名称字段的TextBlock/DataGridTextColumn。子表作为主窗口的DataContext在视图模型中预加载

我一直在研究属性索引器,试图做到这一点,但似乎索引不能是可变的,例如

<DataGridTextColumn Header="Supplier name" Binding="{Binding Path=DataContext.Suppliers[{Binding SupplierID}].SupplierName, RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>

我是不是在做错事?我应该使用转换器吗?或者,我应该简单地将datagrid绑定到同时包含id和name字段的SQL视图吗?

您应该能够使用带转换器的多重绑定。看一看,在您的案例中,将“供应商”和“供应商ID”传递给多值转换器。

谢谢colin,这起到了作用,但是性能受到了相当大的影响。让SQL返回包含供应商名称的视图似乎更好。事实上,我收回这一点,我的性能问题与其他问题有关,这是一种享受!: