eXpressApp Framework (XAF)デスクトップ アプリケーションがあります。メイン ウィンドウには、項目のツリーを含むナビゲーション ペインがあります。コードでナビゲーション項目のリストを取得する方法はありますか?
3 に答える
XAF アプリケーション モデルは、インターフェイスを使用して拡張できます。それを拡張して意図するのは本当に簡単です。たとえば、あなたの状況では、ModelEditor を使用してモデルを開き、NavigationItems ノードに移動します。フォームの下部にある黄色の情報パネルを見ると、次のように表示されます *インターフェースのメンバー: *DevExpress.ExpressApp.SystemModule.IModelApplicationNavigationItems
これは、XAF が IModelApplicationNavigationItems を使用してモデルを拡張したことを意味するため、そのインターフェイスにキャストし、そのプロパティを使用する必要があります。
((IModelApplicationNavigationItems) Application.Model).NavigationItems.AllItems
このアプローチはあなたのものと同じ結果になりますが、強く拘束されています!
このコードは、アプリケーション モデル (メタ データ層) からナビゲーション要素のリストを取得するのに適しています。または、 ShowNavigationItemController.ShowNavigationItem.Itemsプロパティから同じ情報にアクセスできます。
PS 今後は、サポート センターを使用して、DevExpress 製品の使用に関する公式の保証付きサポートを受けることをお勧めします。評価期間中 (30 日間) は完全なサポートが無料であることに注意してください。
見つけるのは簡単ではありませんでしたが、解決策は次のとおりです。
var navigationItems = Application.Model.GetNode<IModelRootNavigationItems>("NavigationItems").AllItems;