我有一个类似的问题。以下是描述:
我有以下 XML:
<Parts>
<Part id="1" name="part1">
<SubParts>
<SubPart id="1" name="sub_part1"/>
<SubPart id="2" name="sub_part2"/>
</SubParts>
</Part>
...
</Parts>
当然,我希望我的 WPF 控件中有两个依赖ComboBox
项 - 一个用于部件,一个用于子部件。
与上述解决方案的不同之处在于,我不想替换第二个ComboBox
的 DataContext,因为我会丢失父 DataContext 绑定。
我想得到这样的东西:
<ComboBox x:Name="_partCombo" ItemsSource="{Binding Source={StaticResource xmlPartList}, XPath=./Part}"
...
SelectedValue="{Binding PartID}"/>
<ComboBox x:Name="_subPartCombo" ItemsSource="{Binding Source={StaticResource xmlPartList}, XPath=./Part/SubParts}"
...
SelectedValue="{Binding SubPartID}"/>
我尝试使用中间数据成员绑定第一个ComboBox
中的选定项目,但我无法从第二个绑定到它。
需要任何帮助。
尝试
ItemsSource="{Binding Source={StaticResource xmlPartList},
RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=Window},
XPath=./Part/SubParts}"