DataContext моих представлений привязан к модели презентации с двумя элементами observableCollections. В представлении у меня есть один listView, к которому привязан ItemSource, это первая наблюдаемая коллекция. В одном из столбцов LilstViews я хочу представить значения из второй наблюдаемой коллекции в моей модели презентации. Я не могу понять, как получить значения из observableCollection в поле со списком. Кто-нибудь знает, как решить эту проблему?
WPF: проблема с привязкой значений к ComboBox внутри GridViewColumn
Ответы (1)
Первое, что вам нужно сделать, это создать шаблон данных, содержащий ваш ComboBox, в этом случае я привязал ItemsSource к DependencyProperty в главном окне. Он содержит модель представления со свойством ComboSource. SelectedValue был привязан через DataContext ListViewItem к свойству, которое содержит выбранное значение.
<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>
Затем вам нужно будет сослаться на это из CellTemplate в GridViewColumn.
<GridViewColumn
Header="Selection"
Width="160"
CellTemplate="{StaticResource comboBoxTemplate}"
/>
person
Ian Oakes
schedule
13.11.2008