gpt4 book ai didi

WPF DataGridComboBoxColumn 的 ComboBox 仅在 DataGrid 具有 IsReadOnly=FALSE 时可见

转载 作者:行者123 更新时间:2023-12-02 04:35:23 27 4
gpt4 key购买 nike

为什么当 DataGrid 设置为 IsReadOnly = FALSE 时,该列中的 ComboBox 只能通过双击空单元格才可见???

 <DataGridComboBoxColumn Width="*" IsReadOnly="False" Header="test" />

使用 DataTemplateColumn 一如既往地工作... DataGridComboBoxColumn 有什么问题吗?

作品:

<DataGridTemplateColumn Header="Schoolclass">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Background="Blue" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

最佳答案

所有内置 DataGridColumns 都有两种样式。一种用于单元格未处于编辑模式时,另一种用于单元格处于编辑模式时。通常,非编辑模式仅显示文本 block ,而不是您可能期望的实际控件(ComboBox、TextBox 等)。一旦开始编辑单元格,文本 block 就会被替换为适当的控件。如果您将数据网格设置为 IsReadOnly = true,则意味着单元格永远不会进入其编辑模式,这就是您所看到的行为。

创建 DataGridTemplateColumn 时,您本质上是替换所有内置的数据网格逻辑。例如,如果您希望当数据网格为只读时模板化列为只读,则必须手动将两个值绑定(bind)在一起。如果您想获得与内置列相同的行为(当单元格未处于编辑模式时为文本 block ),那么您必须使用触发器来提供适当的控件模板。

另请注意,如果您使用内置列(例如 DataGridCheckBoxColumn)并且为其指定 ElmentStyle(例如使复选框居中),则尽管 datagrid 设置为 IsReadOnly = true,但该列的单元格都是可编辑的。发生这种情况是因为当您指定 ElmentStyle 时,您将替换内置 Style,其中包含当数据网格只读时使复选框只读的逻辑。

关于WPF DataGridComboBoxColumn 的 ComboBox 仅在 DataGrid 具有 IsReadOnly=FALSE 时可见,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3070455/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com