0

ItemsControlリージョンに追加されるビューを並べ替える方法はありますか?追加されるビューはコンテナに登録され、各一意のモジュールのリージョンに追加されます。

いくつかの擬似コード...

シェル:

<Window>  
   <ItemsControl Prism:RegionManager.Region="ItemsRegion"/>  
</Window>

モジュール:これは、モジュールの初期化コードです。

protected override void RegisterViewsAndServices()
{
    CommonContainerLifetimeManager.Register<IView, ItemView1>();
    Container.RegisterType<IViewModel, ItemViewModel1>("ItemViewModel1");
}

public override void AdditionalInitialization()
{
    var itemView1 = Container.Resolve<ItemView1>();
    RegionManager.Regions["ItemsRegion"].Add(itemView1);
}

このアプローチでは、モジュールがロードされる順序で、シェルのitemscontrolに追加されたビューが表示されます。ログオンしたユーザーの役割に基づいて、さまざまなモジュールがロードされます。たとえば、間にコレクションを追加せずに、ビューのビューモデルのプロパティでitemscontrol.itemsを並べ替える方法はありますか?モジュールを特定の順序で強制的にロードする方法はありますか?現在、モジュールカタログを使用しています。

ありがとう

アンディ

4

1 に答える 1

0

だから私はこの質問に対する答えを見つけました...少なくとも私はPrism v4で答えを見つけました。

ビューの分離コードに ViewSortHint クラス属性を追加します。Prism はこの属性を検出し、ViewSortHint パラメーターに入力した文字列に基づいてビューを並べ替えます。

[ViewSortHint("01")]
public partial class SortedButton : UserControl
{
    public SortedButton()
    {
        InitializeComponent();
    }
}

これが誰かに役立つことを願っています...

アンディ

于 2011-04-26T21:06:36.060 に答える