我正在开发一个WPF项目,现在我正在研究功能区区域。
在功能区内部,我有一些控件,例如RibbonComboBox
,RibbonTextBox
等。
我有几个RibbonTab
,Ribbon
所以我为每个 RibbonTab 设置了一个视图模型,如下所示:
<rb:Ribbon Name="Ribbon">
<rb:RibbonTab Header="Tab One" Name="tab1">
<rb:RibbonTab.DataContext>
<vm:TabOneViewModel />
</rb:RibbonTab.DataContext>
因此,这些选项卡中的每个控件都继承了它们各自的视图模型。
当我运行应用程序时,一切都按预期工作。当我将容器窗口的大小调整为非常小的尺寸时,问题就开始了,在这样做之后:每个控件都失去了它们的绑定,因为它们的 DataContext 被一个名为DisconnectedItem
.
我做了一些研究,发现这是由于控件不再是可视化树的一部分,因此绑定引擎将它们的 DataContext 设置为DisconnectedItem
.
我能做些什么来防止我的控制失去他们的DataContext
?
编辑:
我刚刚发现主要问题来自RibbonGroup
控件,该控件在折叠后导致其可视子项丢失其 DataContext。