【问题标题】:How can I disable editing cells in a WPF Datagrid?如何禁用 WPF Datagrid 中的编辑单元格?
【发布时间】:2011-10-09 15:11:29
【问题描述】:

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

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

【问题讨论】:

    标签: wpf datagrid wpfdatagrid cells


    【解决方案1】:

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

    <DataGrid IsReadOnly="False">
        <DataGrid.Columns>
            <DataGridTextColumn IsReadOnly="True"/>
            <DataGridTextColumn IsReadOnly="True"/>
        </DataGrid.Columns>
    </DataGrid>
    

    【讨论】:

      【解决方案2】:

      如果要禁用编辑整个网格,可以在网格上将 IsReadOnly 设置为 true。 如果要禁止用户添加新行,请设置属性 CanUserAddRows="False"

      <DataGrid IsReadOnly="True" CanUserAddRows="False" />
      

      您还可以在各个列上设置 IsReadOnly 以禁用编辑。

      【讨论】:

        【解决方案3】:

        WPF DataGrid 有一个 IsReadOnly 属性,您可以将其设置为 True 以确保用户无法编辑您的 DataGrid 的单元格。

        您还可以根据需要为DataGrid 中的各个列设置此值。

        【讨论】:

        • 网格呈灰色,看起来更像是处于禁用状态 - 与 winforms 中的只读状态不同。
        • 我同意布达弗洛林的观点。将其设置为 ReadOnly 使其看起来更像是被禁用。 Disabled 和 ReadOnly 是不同的,因为 ReadOnly 通常允许您选择要复制的文本。当您将 DataGrid 设置为 ReadOnly 时,您将无法再选择单元格中的文本。
        • @LeslieDavies 如果我想让它们保持禁用状态,但我还希望能够在按 DEL 时从数据网格中删除项目,该怎么办?
        • @Roxy'Pro,我也有同样的问题。你找到解决办法了吗?
        【解决方案4】:

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

        <my:DataGrid
            IsReadOnly="True"
        />
        

        【讨论】:

          猜你喜欢
          • 2012-12-04
          • 1970-01-01
          • 1970-01-01
          • 2011-11-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多