1

我的视图 dataContext 绑定到具有两个 observableCollections 成员的presentationModel。在视图中,我有一个 ListView,ItemSource 绑定到的是第一个 observableCollection。在 LilstViews 列之一中,我想在我的presentationModel 中显示来自第二个可观察集合的值。我不知道如何将 observableCollection 中的值获取到我的组合框中。有谁知道如何解决这个问题?

4

1 回答 1

3

您需要做的第一件事是创建一个包含 ComboBox 的数据模板,在这种情况下,我已将 ItemsSource 绑定到主机窗口上的 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}"
    />
于 2008-11-13T21:16:05.023 回答