DataGrid单元格编辑模式=双向
本文关键字:双向 模式 编辑 单元格 DataGrid | 更新日期: 2023-09-27 18:26:49
我有一个DataGrid
,如下
<DataGrid ItemsSource="{Binding Templates}" SelectedItem="{Binding SelectedTemplate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
CanUserSortColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Templates" Binding="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="*"/>
</DataGrid.Columns>
</DataGrid>
有问题的两个属性如下
private ObservableCollection<string> _templates;
public ObservableCollection<string> Templates {
get { return _templates; }
set {
if (_templates == value)
return;
_templates = value;
RaisePropertyChanged("Templates");
}
}
private string _selectedTemplate;
public string SelectedTemplate {
get { return _selectedTemplate; }
set {
if (_selectedTemplate == value)
return;
_selectedTemplate = value;
RaisePropertyChanged("SelectedTemplate");
}
}
我希望从UI对上述DataGrid
中的单元格执行Edit
操作,并且绑定属性中必须有相应的更改。
现在,由于String
类不实现INotifyPropertyChanged
,在UI中编辑单元格不会反映属性中值的更改。那么,有人知道是否有解决方法,这样我就可以实现所需的功能吗?
您在这里没有太多选择。。。创建一个具有string Template
属性的TemplateModel
类。使其实现INotifyPropertyChanged
并更改以下内容:
Templates
至ObservableCollection<TemplateModel>
的类型SelectedTemplate
至TemplateModel
的类型- 绑定到
{Binding Path=Template, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}