My Views dataContext与带有两个observableCollections成员的presentationModel绑定。在View中我有一个listView,ItemSource绑定的是第一个observableCollection。在其中一个LilstViews列中,我想在我的presentationModel中显示第二个obeservable Colletion的值。我无法弄清楚如何从observableCollection中获取值到我的组合框中。有谁知道如何解决这个问题?
答案 0 :(得分:3)
您需要做的第一件事是创建一个包含ComboBox的数据模板,在这种情况下,我已将ItemsSource绑定到主机Window上的DependencyProperty。它包含表示模型,它具有一个名为ComboSource的属性。 SelectedValue已经通过ListViewItem的DataContext绑定到一个包含所选值的属性。
<ListView.Resources>
<DataTemplate x:Key="comboBoxTemplate">
<ComboBox
ItemsSource="{Binding
Path=ModelData.ComboSource,
RelativeSource={RelativeSource AncestorType=Window}}"
SelectedValue="{Binding
Path=DataContext.Selection,
RelativeSource={RelativeSource AncestorType=ListViewItem}}"
DisplayMemberPath="Item"
SelectedValuePath="Id"
/>
</DataTemplate>
</ListView.Resources>
然后,您需要从GridViewColumn上的CellTemplate
引用它<GridViewColumn
Header="Selection"
Width="160"
CellTemplate="{StaticResource comboBoxTemplate}"
/>