我对 WPF 相对较新,我被困在 VMMV 环境中看起来相对常见的场景中。它以设置组合框的数据上下文为中心。
我有一个视图模型
- 字符串属性
- XmlDataProvider 属性。
我的计划是使用 XmlDataProvider 填充组合框项,字符串属性将绑定到组合框的 SelectedItem。
在我的 XAML 中,顶级网格将 DataContext 设置为 ViewModel。在网格中,我有一个组合框,定义如下
<ComboBox x:Name="CategoryCombo" HorizontalAlignment="Left" Height="30"
Margin="54,70,0,0" VerticalAlignment="Top" Width="233"
ItemsSource="{Binding XPath=/OccupationCategory/@name}"
DataContext="{Binding myProvider}"/>
该列表正在正确填充。我的问题是,为了让 XmlDataProvider 正常工作,我需要将组合框的 DataContext 绑定到我的 Viewmodel 中的 XMLDataProvider 属性。
据我所知,这意味着我现在无法将 SelectedItem 绑定到我的 ViewModel 中的 String 属性。这将要求我将 Datacontext 设置回视图模型。
笔记。我确实尝试了 XAML 的各种变体,这些变体不会强迫我将整个组合框的 dataContext 设置为 XmlDataProvider,但没有一个起作用。下面的 XAML 未能填充列表。从绑定错误看来,在这种情况下,数据源仍然指向视图模型,而不是 XMLDataProvider
<ComboBox x:Name="CategoryCombo" HorizontalAlignment="Left" Height="30"
Margin="54,70,0,0" VerticalAlignment="Top" Width="233"
ItemsSource="{Binding myProvider, XPath=/OccupationCategory/@name}" />
任何帮助将不胜感激。