我发现很多很多的消化都与我的问题非常接近,但它们似乎都是“肮脏的黑客”。
我的程序显示订单列表。用户应该能够从该列表中标记订单,然后保存该选择以便在订单到达时通知。
DataGrid绑定到DataTable对象,并且启用了写入DataGrid,它按预期工作,除了两件事:
用户必须单击两次,一次用于选择行,然后再次单击以切换复选框
usr可以编辑数据网格中不需要的其他字段。此外,他可以向数据网格添加行,这可能会让我对数据库感到痛苦。
我的目标是,除了复选框单元格外,Datagrid中的felds不可更改。我不在乎用户是否必须单击复选框,单元格甚至只是单击行来触发更改,但只需单击即可完成更改。
有人可能暗示我这一点,我已经失去了评价和评估我之前提到的所有不同方法的能力。
亲切的问候。
答案 0 :(得分:1)
对于Checkbox Column,在里面创建一个带有Checkbox的Template Colum。然后将Checkbox.IsChecked绑定到绑定值。您还可以将某些列设置为只读。在Code中,您只需为Datagrid设置Itemssource。
以下是一些XAML
<DataGrid AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Row1" Binding="{Binding r1Value}" IsReadOnly="True"></DataGridTextColumn>
<DataGridTemplateColumn Header="CB" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding PropertyIsChecked}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>