2009-08-13 9 views
0

私はこれを使いたいですが、私の人生のためにアイテムをバインドする方法を理解できません。Prism and AnimatedTabControl

私は簡単な例を見てみたい、

のようなものShell.xaml

<Controls:AnimatedTabControl 
    x:Name="TestTab" 
    SelectedIndex="0" 
    VerticalAlignment="Stretch" 
    cal:RegionManager.RegionName="{x:Static inf:RegionNames.TestRegion}" 
    Grid.Row="1" 
/> 

- 複数のタブを持つことが必要とされているどのようなコード

using Microsoft.Practices.Composite.Modularity; 
using Microsoft.Practices.Composite.Regions; 

namespace HelloWorldModule 
{ 
    public class HelloWorldModule : IModule 
    { 
     private readonly IRegionManager regionManager; 
     public HelloWorldModule(IRegionManager regionManager) 
     { 
      this.regionManager = regionManager; 
     } 

     public void Initialize() 
     { 
     regionManager.RegisterViewWithRegion(
      RegionNames.SecondaryRegion, typeof(Views.HelloWorldView)); 
     regionManager.RegisterViewWithRegion(
      RegionNames.TestRegion, typeof(Views.TestTab)); 
     } 
    } 
} 

変更時にアニメーションがTestRegionにあります。 AnimatedTabControlまたは通常のタブコントロールに何かをバインドする方法を理解できないようです...

答えて

0

私は実際にView Injectionを使用するときにView Discoveryを使用していると思います。

View Discoveryでは、ビューをリージョンに登録し、リージョンが表示されると各ビューが動的にロードされます。私の推測では、地域が可視化された後、地域とのビューを登録しているということです。これは、リージョンがすでに表示されているため、ビューがインスタンス化されることはありません。

ビュー注入は、既存の領域にビューを動的に挿入します。私はこれがあなたがしたいことだと思います。あなたのシェルは問題ありませんが、Module Initialize()コールに以下を追加する必要があります:

Views.HelloWorldView hello= new Views.HelloWorldView(); 
regionmanager.Regions[RegionNames.TestRegion].Add(hello); 

これはすべきことです。

NB:あなたがそうのようIRegionに有効化/無効化メソッドを呼び出すことにより、地域における/非表示のビューを表示することができます。

regionmanager.Regions[RegionNames.TestRegion].Activate(hello);