WPF单击CheckBox写入受保护的DataGrid

时间:2014-02-28 12:29:22

标签: c# wpf datagrid

我发现很多很多的消化都与我的问题非常接近,但它们似乎都是“肮脏的黑客”。

我的程序显示订单列表。用户应该能够从该列表中标记订单,然后保存该选择以便在订单到达时通知。

DataGrid绑定到DataTable对象,并且启用了写入DataGrid,它按预期工作,除了两件事:

  1. 用户必须单击两次,一次用于选择行,然后再次单击以切换复选框

  2. usr可以编辑数据网格中不需要的其他字段。此外,他可以向数据网格添加行,这可能会让我对数据库感到痛苦。

  3. 我的目标是,除了复选框单元格外,Datagrid中的felds不可更改。我不在乎用户是否必须单击复选框,单元格甚至只是单击行来触发更改,但只需单击即可完成更改。

    有人可能暗示我这一点,我已经失去了评价和评估我之前提到的所有不同方法的能力。

    亲切的问候。

1 个答案:

答案 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>