鉴于数据结构 { 收集元素; String LocationName; }
一个ComboBox绑定到这些项目的集合(在结构中描述),DisplayMemberPath设置为LocationName,如何将数据网格绑定到XAML中所述组合框的SelectedItem.Elements?
据我了解,组合框的SelectedItem属性将返回LocationName。我需要在结构的数据上下文中向上移动然后将SourceItems附加到Elements。正确?但是我似乎无法使用Binding标记。
P.S。我正在使用样本数据来装配GUI。
谢谢。
更新1:代码如下所示:
<ComboBox x:Name="ComboBox1"
ItemsSource="{Binding AdSources, Mode=OneWay}"
DisplayMemberPath="NameProperty" />
<ComboBox x:Name="ComboBox2"
ItemsSource="{Binding SelectedItem.CollectionProperty, ElementName=ComboBox1, Mode=OneWay}"
DisplayMemberPath="NameProperty2" />
<data:DataGrid x:Name="DataGrid"
ItemsSource="{Binding SelectedItem.CollectionProperty, ElementName=ComboBox2, Mode=OneWay}">
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Column1" Binding="{Binding Property1}"/>
</data:DataGrid.Columns>
</data:DataGrid>
答案 0 :(得分:1)
SelectedItem
将指向整个对象,这就是为DisplayMemberPath
指定LocationName
的原因。选择整个对象,但仅显示位置名称。
您可以绑定到SelectedItem.Elements
- 如果这不起作用,您的问题就在其他地方。