1

这是示例 XAML:

...
<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>
...

出于某种原因,无论是否选中复选框,文本框都会保持禁用状态。为什么绑定不能正常工作?

您可以将上面的代码减去顶部和底部的省略号添加到样板 WPF 功能区项目中,看看您是否能找出问题所在。例如,我看不到绑定错误诊断。

更新:如果用常规TextBox替换RibbonTextBox,则行为正确。我的结论是,绑定 a 的 IsEnabled 属性一定存在一些问题RibbonTextBox

奇怪的更新 #2:创建一个基本RibbonTextBox并将其IsEnabled属性设置为True创建一个禁用的 RibbonTextBox。是什么赋予了?

我已提交有关 Microsoft Connect 的错误报告以进一步解决此问题。

最终更新:已在 WPF 4.5 中修复

4

1 回答 1

0

作为一个疯狂的猜测,您是否尝试过完全限定该属性?

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

……或者甚至……

IsEnabled="{Binding CheckBox.IsChecked, ElementName=MyCheckBox}" 
于 2012-02-04T22:16:20.100 回答