1

私のビュー dataContext は、2 つの observableCollections メンバーを持つ presentationModel にバインドされています。ビューには、ItemSource がバインドされている 1 つの listView があり、最初の observableCollection です。LilstViews 列の 1 つで、presentationModel の 2 番目の監視可能なコレクションからの値を提示したいと考えています。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 に答える