[英]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.