2012-02-03 48 views
1

下面是示例XAML:綁定絲帶文本框的IsEnabled到複選框不器isChecked工作

... 
<ribbon:RibbonTab Header="MyTab"> 
    <ribbon:RibbonGroup Header="Blah"> 
    <ribbon:RibbonTextBox x:Name="MyTextBox" 
          IsEnabled="{Binding IsChecked, ElementName=MyCheckBox}" /> 
    <ribbon:RibbonCheckBox x:Name="MyCheckBox" Label="some text" /> 
    </ribbon:RibbonGroup> 
</ribbon:RibbonTab> 
... 

出於某種原因,文本框撐不管複選框是否被選中禁用。爲什麼綁定不能正常工作?

您可以將上面的代碼減去頂部和底部的elipses添加到鍋爐板WPF功能區項目,看看你是否可以找出什麼是錯的。例如,我看不到任何綁定錯誤診斷。

更新:如果一個普通TextBox代替了RibbonTextBox,行爲變得正確。我得出這樣的結論:綁定RibbonTextBox的IsEnabled屬性必定存在一些問題。

怪異的更新#2:創建基本RibbonTextBox及其IsEnabled屬性設置爲True創建禁用RibbonTextBox。是什麼賦予了?

我已在Microsoft Connect上提交bug report以進一步追究此問題。

最終更新:它是fixed in WPF 4.5

+0

你做了什麼診斷? – 2012-02-03 16:52:38

+0

嗯,我看到WPF診斷沒有綁定錯誤,如果這就是你的意思.. – 2012-02-03 16:58:21

+0

掛鉤到RibbonTextBox的IsEnabledChanged和RibbonCheckBox的Checked事件和回調中會發生什麼? – 2012-02-03 17:07:18

回答

0

作爲一個瘋狂的猜測,你有沒有嘗試完全限定財產?

IsEnabled="{Binding RibbonCheckBox.IsChecked, ElementName=MyCheckBox}" 

...或者甚至...

IsEnabled="{Binding CheckBox.IsChecked, ElementName=MyCheckBox}" 
+0

是的,IsEnabled由於RibbonCheckBox中的一個錯誤而被破壞。沒有辦法繞過它。 – 2012-02-05 01:46:45

+0

你確定沒有辦法解決嗎?您可以使用「附加屬性」創造奇蹟。如果您有興趣,請參閱此MSDN [文章](http://msdn.microsoft.com/zh-cn/library/ms749011.aspx)。 – Sheridan 2012-02-05 19:16:11

+0

http://connect.microsoft.com/VisualStudio/feedback/details/633097/ribbontextbox-isenabled-property-is-always-false – user7116 2012-09-12 19:04:35

相關問題