【问题标题】:WPF - Not working IsReadOnly in DataGrid with custom CheckBox styleWPF - 在具有自定义 CheckBox 样式的 DataGrid 中无法使用 IsReadOnly
【发布时间】:2012-05-06 13:12:28
【问题描述】:

我目前有一个在 DataGrid 中使用的自定义 CheckBox 样式。但是,当我在 DataGridCheckBoxColumn 中指定 IsReadOnly="true" 属性时,这不再起作用(我仍然可以单击并更改 CheckBox 的值)。我还使用Expression Blend提取了原始WPF样式的副本,并且这个有同样的问题。只有原来的 CheckBox 样式似乎在起作用,这是我不想要的。

我目前设法通过在我的正常样式的基础上创建一种新样式来解决这个问题,并将 IsHitTestVisible 和 Focusable 属性设置为 false,但我希望 DataGridCheckBoxColumn 中的 IsReadOnly 属性在没有这种解决方法的情况下也能正常工作。

我怎样才能达到这个结果?

【问题讨论】:

  • 不错的解决方法。也许试试 DataGridTemplateColumn。
  • 感谢 Blam,我尝试了 DataGridTemplateColumn 并遇到了同样的问题。有谁知道 IsReadOnly 属性发生了什么变化?

标签: wpf datagrid checkbox


【解决方案1】:

可能是您的情况:尝试在此 xaml 的样式中设置某处:

IsReadOnly="{TemplateBinding}"

IsReadOnly="{Binding IsReadOnly, RelativeSource={RelativeSource TemplatedParent}}"

希望对您有所帮助。

【讨论】:

  • 谢谢,但复选框没有 IsReadOnly 属性。还有其他解决方案吗?
  • 根据msdn 的文章,IsSealed 属性应该是你真正需要的
  • 我知道 IsSealed,但它是在内部设置的,并且无法按照 MSDN 中的说明进行修改:获取一个值,该值指示此实例当前是否已密封(只读)。 + 这个值是内部设置的。
猜你喜欢
  • 1970-01-01
  • 2012-04-01
  • 2011-03-05
  • 1970-01-01
  • 1970-01-01
  • 2022-01-26
  • 2012-01-14
  • 1970-01-01
  • 2019-08-29
相关资源
最近更新 更多