单元格设置为只读
问题:直接使用IsReadOnly={Binding isReadonly}无法实现,原因:DataGridTextColumn并不是一个真正的可视化元素,所以它的依赖属性如Visibility、IsReadOnly、IsEnabled看起来是Bindable,但它们在Binding通知上并不生效。
解决:可以使用模板的方式实现,或者可以在样式上进行绑定。
<DataGridTextColumn.CellStyle>
<Style>
<Setter Property="UIElement.IsEnabled" Value="{Binding IsEnabled,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"></Setter>
</Style>
</DataGridTextColumn.CellStyle>
删除选中的行,支持多选
在Model中添加属性IsSelected,将其绑定到DataGridRow的IsSelected属性上,删除的时候遍历数据源如果IsSelected==True就移除。
<DataGrid.Resources>
<Style TargetType="DataGridRow">
<Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
</Style>
</DataGrid.Resources>