C#-DataGrid

2023-03-18 16:22:27 浏览数 (3)

单元格设置为只读

问题:直接使用IsReadOnly={Binding isReadonly}无法实现,原因:DataGridTextColumn并不是一个真正的可视化元素,所以它的依赖属性如Visibility、IsReadOnly、IsEnabled看起来是Bindable,但它们在Binding通知上并不生效。

解决:可以使用模板的方式实现,或者可以在样式上进行绑定。

代码语言:javascript复制
<DataGridTextColumn.CellStyle>
    <Style>
        <Setter Property="UIElement.IsEnabled" Value="{Binding IsEnabled}"></Setter>
    </Style>
</DataGridTextColumn.CellStyle>

删除选中的行,支持多选

在Model中添加属性IsSelected,将其绑定到DataGridRow的IsSelected属性上,删除的时候遍历数据源如果IsSelected==True就移除。

代码语言:javascript复制
<DataGrid.Resources>
    <Style TargetType="DataGridRow">
        <Setter Property="IsSelected" Value="{Binding IsSelected}"></Setter>
    </Style>
</DataGrid.Resources>

0 人点赞