2012-04-25 65 views
4

我目前有一个自定义复选框样式,我在DataGrid中使用。但是,当我在DataGridCheckBoxColumn中指定IsReadOnly =“true”属性时,该属性不再有效(我仍然可以单击并更改CheckBox的值)。我还使用Expression Blend来提取原始WPF样式的副本,并且此问题具有相同的问题。只有原来的CheckBox风格似乎在工作,我不想要。WPF - 不工作IsReadOnly在自定义复选框样式的DataGrid

我目前设法通过创建一个基于我的正常的IsHitTestVisible和Focusable属性为false的新样式来解决它,但我希望DataGridCheckBoxColumn的IsReadOnly属性在没有此解决方法的情况下工作。

我该如何达到这个结果?

+0

不错的解决方法。也许尝试一个DataGridTemplateColumn。 – Paparazzi 2012-04-25 22:36:46

+0

感谢Blam,我试过DataGridTemplateColumn并遇到同样的问题。有谁知道IsReadOnly属性正在改变什么? – 2012-04-26 16:13:56

回答

0

可能是您的情况:尽量某处设置在样式此XAML:

IsReadOnly="{TemplateBinding}" 

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

希望这有助于。

+0

谢谢,但复选框没有IsReadOnly属性。其他解决方案? – 2012-04-26 10:22:17

+0

根据[msdn](http://msdn.microsoft.com/en-us/library/system.windows.dependencyobject.issealed.aspx)文章,“IsSealed”属性应该是你真正需要的 – stukselbax 2012-04-26 10:55:04

+0

我知道IsSealed ,但它在内部设置,并且无法像MSDN上所述那样进行修改:获取一个值,该值指示此实例当前是否被密封(只读)。 +该值在内部设置。 – 2012-04-26 11:12:07