我有一个WPF DataGrid,可以添加新行(CanUserAddRows="True"
)。我的一个专栏是ComboBox。通过下面的代码,我可以将数据绑定到这个ComboBox:
<DataGridTemplateColumn Header="Validator" MinWidth="150">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox ItemsSource="{Binding DataContext.ValidatorVariables, RelativeSource={RelativeSource FindAncestor, AncestorType=Window}, UpdateSourceTrigger=PropertyChanged}"
SelectedItem="{Binding SelectedValidatorVariable, UpdateSourceTrigger=PropertyChanged}"
IsEnabled="{Binding HasValidator, UpdateSourceTrigger=PropertyChanged}">
如果我首先在占位符行中选择一个ComboBox项,则不会从此占位符行创建新项。仅当我在文本列中进入编辑模式时,占位符行才会添加到项目源。复选框列也不起作用,只有文本列。
这会产生副作用:
1.选择组合框项
1.在文本列中进入编辑模式
结果:清除先前选择的ComboBox项
对于这种情况有什么解决方案吗?
1条答案
按热度按时间mklgxw1f1#
任何输入控件,例如
ComboBox
,都应该放在单元格编辑模板中。CellTemplate
应该包含一个显示当前选定值的TextBlock
: