私はWPFプロジェクトを開発していて、現在リボン領域に取り組んでいます。
リボンの内側にはRibbonComboBox
、、などのコントロールがありますRibbonTextBox
。
私はいくつか持ってRibbonTab
いるRibbon
ので、RibbonTabごとに次のように1つのビューモデルを設定します。
<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を失う原因となるコントロールに起因することがわかりました。