WPF: проблема с привязкой значений к ComboBox внутри GridViewColumn - PullRequest
1 голос
/ 13 ноября 2008

Мои представления dataContext ограничены презентационной моделью с двумя членами observableCollections. В представлении у меня есть один listView, к которому привязан ItemSource, это первый набор observableCollection. В одном из столбцов LilstViews я хочу представить значения из второй наблюдаемой коллекции в моей презентацииModel. Я не могу понять, как получить значения из observableCollection в мой комбинированный список. У кого-нибудь есть идеи, как решить эту проблему?

1 Ответ

3 голосов
/ 14 ноября 2008

Первое, что вам нужно сделать, это создать шаблон данных, содержащий ваш ComboBox, в этом случае я привязал ItemsSource к DependencyProperty в окне Window. Он содержит модель презентации, которая имеет свойство 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}"
    />
...