2013-06-09 3 views
1

나는 껍질을 만들고있다. XAML에는 TabControl 만 있습니다. 버튼 클릭 이벤트에서 새 탭을 만들려고합니다. 지금까지 작성한 코드를 사용하여 버튼 클릭 이벤트에서 새 탭을 만들 수 있지만 탭 (영역)의 내용은 첫 번째 탭에만 표시되고 작성된 새 탭은 비어 있습니다. 나는.지역으로 TabControl PRISM

: 나는 ... 나는 탭에 추가 할

Shell.XAML

<TabControl Name="MyTabs" 
      Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.MainRegion}"> 
</TabControl> 

UserControl 새로 만든 탭에서 동일한 콘텐츠 (지역)를 표시 할 수 없습니다입니다 에 MainControls.XAML는

<UserControl> 
    <Grid> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 

     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="Auto" /> 
      <ColumnDefinition Width="*" /> 
     </Grid.ColumnDefinitions> 

     <Grid x:Name="LeftGrid" Grid.Row="0" Grid.Column="0" Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.InputRegion}"> 

     <GridSplitter> 
     <Grid x:Name="RightGrid" Grid.Row="0" Grid.Column="0" Prism:RegionManager.RegionName="{x:Static inf:RegionConstants.OutputRegion}"> 
    </Grid> 
</UserControl> 

기능 InputRegionOutputRegion을 등록하는 MainRegion

class CollaboratedModule :IModule 
{ 
    private IUnityContainer container = default(IUnityContainer); 
    private IRegionManager regionManager = default(IRegionManager); 

    public CollaboratedModule(IUnityContainer container, IRegionManager regionManager) 
    { 
     this.container = container; 
     this.regionManager = regionManager; 
    } 

    public void Initialize() 
    { 
     if (this.container != default(IUnityContainer) && 
      this.regionManager != default(IRegionManager)) 
     { 
      var IntergratedView = this.container.Resolve<MainControls>(); 

      this.regionManager.AddToRegion(RegionConstants.MainRegion, IntergratedView); 
      this.regionManager.Regions[RegionConstants.MainRegion].Activate(IntergratedView); 
     } 
    } 
} 

마찬가지로 나는 모듈을 만든

등록에 대한 탭
private void New_Tab(object sender, RoutedEventArgs e) 
{ 
    TabItem tab = new TabItem(); 
    tab.Header = "New Tab"; 
    tab.Content = new MainControls(); 
    MyTabs.Items.Add(tab); 
} 

모듈

를 추가합니다. 누구든지이 코드에서 문제가 어디에 있는지 알려주고 어떻게 해결할 수 있습니까?

답변

0

단지이 방법

regionManager.RegisterViewWithRegion(RegionConstants.MainRegion,() => IntergratedView); 
시도