如何在WPF Datagrid中禁用编辑单元格?

Pou*_*yan 109 wpf datagrid cells wpfdatagrid

我正在Windows Presentation Foundation中构建一个数据网格,我遇到了问题.当用户双击数据网格中的单元格时,单元格将进入编辑模式.我想防止这种情况.相反,我希望用户能够选择整行 - 而不是编辑其中的值.

如何双击选择整行而不是将单击的单元格置于编辑模式?

小智 240

WPF DataGrid具有一个IsReadOnly属性,您可以设置该属性True以确保用户无法编辑您DataGrid的单元格.

您还可以DataGrid根据需要为各列设置此值.

  • 网格是灰色的,看起来更像处于禁用状态 - 与 winform 的只读状态不同。 (3认同)
  • 我同意布达弗罗林的观点.将其设置为ReadOnly使其看起来更像是禁用.Disabled和ReadOnly不同,因为ReadOnly通常允许您选择要复制的文本.将DataGrid设置为ReadOnly时,您无法再在单元格中选择文本. (2认同)
  • @LeslieDavies如果我想让它们被禁用怎么办,但我还希望能够在按DEL时从datagrid中删除项目? (2认同)

小智 45

DataGrid有一个XAML属性IsReadOnly,您可以将其设置为true:

<my:DataGrid
    IsReadOnly="True"
/>
Run Code Online (Sandbox Code Playgroud)


小智 9

我在评论中看到用户想知道如何在允许删除行的同时禁用单元格编辑:我设法通过将所有列单独设置为只读而不是 DataGrid 本身来做到这一点。

<DataGrid IsReadOnly="False">
    <DataGrid.Columns>
        <DataGridTextColumn IsReadOnly="True"/>
        <DataGridTextColumn IsReadOnly="True"/>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)