3

「ActiveModule」という名前のリージョンがあり、別のビューで再利用したいと考えています。たとえば、検索ボタンを押して、そこに検索ビューを表示するなどです。

私がATMでできる唯一の方法は、その地域のすべてのアクティブなビューを非アクティブにしてから、好きなビューをアクティブにすることです。これは少し汚いですが、「viewManager」などを使用できますか?

4

5 に答える 5

4

リージョンが ContentControl であるか、ContentControl から派生している場合、アクティブなビューは一度に 1 つしか存在できず、そのリージョンで検索ビューをアクティブにするだけで済みます。

于 2009-06-11T09:01:06.150 に答える
1

複数のビューを表示できるタイプの contentControl を使用することを検討しましたか? たとえば、次のように TabControl を使用できます。

<TabControl Name="MainRegion" Regions:RegionManager.RegionName="MainRegion"/>

リージョンに複数のビューを追加できるようになりました。Prism のインターフェイスを使用INavigationAwareIActiveAwareて、ビューでナビゲーションを実行できるようにします (ビューをアクティブにする、正しいビューを見つけるなど)。

于 2013-02-20T09:20:53.530 に答える
0

私の知る限り、あなたがしていることは唯一の方法です。理論的には、SCSF では最上位のビューがフレームワークによってアクティブ化されました。これを行うには、独自のViewManagerまたは同等のShowViewServiceを作成できます。実際のところ、それは私がやったことです!

于 2011-08-17T21:31:01.767 に答える
0

を使用している場合はIRegionManager、タイプが認識できるすべてのビューを削除してから、独自のビューを追加できます。

    foreach (var view in _regionsManager.Regions["MyRegion"].Views.ToArray())
    {
        if (view is MyType ||
            view is MyOtherType)
            _regionsManager.Regions["MyRegion"].Remove(view);
    }

    _regionsManager.AddToRegion("MyRegion", typeof(MyView));

決して理想的ではありませんが、機能します。:)

于 2010-12-15T18:07:22.333 に答える