2012-04-25 90 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