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>
기능 InputRegion
과 OutputRegion
을 등록하는 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);
}
모듈
를 추가합니다. 누구든지이 코드에서 문제가 어디에 있는지 알려주고 어떻게 해결할 수 있습니까?