簡體   English   中英

MVVM WPF Datagrid TemplateColumn組合框所選項目不起作用

[英]MVVM WPF Datagrid TemplateColumn Combobox Selected Item Not Working

我正在嘗試使用帶有WPF的MVVM模式將一些數據綁定到數據網格。 我已經確認數據網格正在填充,實際上,填充了特定值(Gender)。 我還嘗試了可以​​在網上找到的所有修復程序(包括本網站上的其他問題),這就是為什么我在這里尋求答案的原因。

<DataGridTemplateColumn Header="Gender" >
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Genders}"  SelectedItem="{Binding Gender, UpdateSourceTrigger=PropertyChanged}" IsSynchronizedWithCurrentItem="True">
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

我嘗試過的事情:Mode = TwoWay,UpdateSourceTrigger = PropertyChanged“,IsSynchronizedWithCurrentItem =”True“。雖然,我不是一個超級經驗豐富的WPF和MVVM程序員,所以它可能是一些我不知道的簡單。我的模型似乎在其他地方都可以使用,並且它們實現了可觀察的/適用於可觀察的集合。

編輯:我弄清楚了。 這是解決我的問題的代碼(以防其他人遇到類似的問題)。

<DataGridTemplateColumn Header="Gender" >
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding Path=DataContext.Genders, RelativeSource={RelativeSource FindAncestor, AncestorType = Window}}" SelectedItem="{Binding Gender, UpdateSourceTrigger=PropertyChanged}">
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

假設您的DataGrid的DataContext是Patient對象,請嘗試使用RelativeSource綁定指向DataGrid:

<DataGridTemplateColumn Header="Gender" >
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=DataGrid}, Path=DataContext.Genders}"
                      SelectedItem="{Binding Gender, UpdateSourceTrigger=PropertyChanged}"
                      IsSynchronizedWithCurrentItem="True">
            </ComboBox>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM