我正在尝试通过以下方式实现主从关系:
(shown in a ComboBox) (shown in a DataGrid)
|-----------| |------------|
| Customers | | Orders |
|-----------| |------------|
| Id |--- CustomersOrdersRelation ---| CustomerId |
| Name | | OrderId |
| ... | | ... |
|-----------| |------------|
但是我在组合框中也有一个 <All Customers> 项,为此我需要查看详细数据网格中显示的所有客户的所有订单。
这是 XAML 代码的片段:
<ComboBox x:Name="CustomersComboBox" ...>
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem Content="{StaticResource nullCustomer}" /> <!-- I wrote my own class NullCustomer -->
<CollectionContainer Collection="{Binding Source={StaticResource CustomersCollectionViewSource}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
<DataGrid ItemsSource="{Binding ElementName=CustomersComboBox, Path=SelectedItem.CustomersOrdersRelation}" ...>
现在我有两个问题:
Path=SelectedItem.CustomersOrdersRelation
当组合框SelectedItem
(在运行时是 DataRowView)没有属性时,数据网格中的绑定如何找到CustomersOrdersRelation
?修改自己的
NullCustomer
类以便在选择 <All Customers> 时AllOrdersCollectionViewSource
显示结果的最简单方法是什么?