在常规窗口(而不是RibbonWindow)中使用时,功能区绑定失败

时间:2013-12-04 14:46:47

标签: wpf binding .net-3.5 ribbon

我正在使用RibbonControlLibrary中的Ribbon控件来处理.net 3.5。

我无法使用RibbonWindow来解决某些与演示兼容性问题。所以我在Window内放置了一个Ribbon控件。

没有明显的问题,但我在VisualStudio输出窗口中收到2条错误消息。

这些消息是:

  
      
  1. System.Windows.Data错误:4:无法找到绑定源   参考'RelativeSource FindAncestor,   AncestorType = 'Microsoft.Windows.Controls.Ribbon.RibbonWindow',   AncestorLevel = '1'”。 BindingExpression:路径=的WindowState;的DataItem = NULL;   target元素是'Ribbon'(Name ='');目标属性是'NoTarget'   (输入'对象')

  2.   
  3. System.Windows.Data错误:4:无法找到绑定源   参考'RelativeSource FindAncestor,   AncestorType = 'Microsoft.Windows.Controls.Ribbon.RibbonWindow',   AncestorLevel = '1'”。 BindingExpression:路径= IsActive;的DataItem = NULL;   target元素是'Ribbon'(Name ='');目标属性是'NoTarget'   (输入'对象')

  4.   

只需将Ribbon添加到Window并运行该应用程序即可重现。

有没有办法告诉Ribbon不要尝试将任何内容完全绑定到RibbonWindow但是对于Window?

2 个答案:

答案 0 :(得分:1)

既然你说你不能使用RibbonWindow(出于某种原因...),我假设你正在做类似的事情

<Window x:Class="Yournamespace" ...>
    <Ribbon>
    </Ribbon>
</Window>

你的祖先应该是     AncestorType='System.Windows.Window'而非'Microsoft.Windows.Controls.Ribbon.RibbonWindow'

答案 1 :(得分:-1)

你可能有:

<Window x:Class="yournamespace" 
    xmlns:r="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary"
...>
    <r:Ribbon>
    </r:Ribbon>
</Window>

To fix this just replace <Window> and </Window> with <r:RibbonWindow> and </r:RibbonWindow>

这为我修好了