MainView
안에 TabControl
영역이있는 다른보기를 등록하려면 Prism RegionManager
을 사용하고 있습니다.프리즘을 사용하여 동적으로 추가 된 탭 항목 닫기 - WPF
MainView.xaml는 MainViewViewModel에서
<TabControl regions:RegionManager.RegionName="MainViewTabRegion">
<TabControl.ItemTemplate>
<DataTemplate>
<DockPanel Width="Auto">
<Button Command="{Binding DataContext.DataContext.CloseTabCommand, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}"
CommandParameter="{Binding RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}"
Content="X"
Cursor="Hand"
DockPanel.Dock="Right"
Focusable="False"
FontFamily="Courier"
FontWeight="Bold"
Margin="4,0,0,0"
FontSize="10"
VerticalContentAlignment="Center"
Width="15" Height="15" />
<ContentPresenter Content="{Binding DataContext.DataContext.HeaderText, RelativeSource={RelativeSource AncestorType={x:Type TabItem}}}" />
</DockPanel>
</DataTemplate>
</TabControl.ItemTemplate>
</TabControl>
나는 같은 기본 클래스에 다른보기를 추가하고 있습니다.
MainViewViewModel.cs :
private void AddProjectView() {
var view = _container.Resolve<ProjectSettingsView>();
var dataContext = _container.Resolve<ProjectSettingsViewModel>();
dataContext.HeaderText = "test header txt";
view.DataContext = dataContext;
_regionManager.RegisterViewWithRegion("MainViewTabRegion",() => view);
}
내가 볼 수있는 새 탭 항목을 추가 할 수 있습니다.
위의 XAML 코드에서 <TabControl.ItemTemplate>
의 탭 항목을 닫고 ProjectSettingsViewModel
에 CloseCommand
의 닫기 단추를 추가하고 TabItem을 보세에 연결하는 방법은 무엇입니까?
ProjectSettingsViewModel.cs는
private void OnExecuteCloseCommand(object tabItem) {
//Close this TabItem
}
아무튼 링크가 있습니다 솔루션에 도달하려면 가입해야합니까? 나는 그가 무료 평가판에 가입하도록 요구하는 링크가이 사이트에서 좋은 형태라고 생각하지 않습니다. –
사실 [here] (https://meta.stackoverflow.com/a/272885/7604843) 상업 소스에 연결하는 경우 이미 완성 된 답변을 보완해야합니다. 무료 답변과 관련된 자료. –
그는 무료 답변을 원하며 대답을 무료로 얻을 수있는 무료 평가판을 얻을 수 있습니다. 이미 구독하고 있다면 더 쉽습니다. 대답은 거기에 있으며, 재판에 등록하는 것이 솔루션을 얻는 데 너무 많이 요청하면 다른 곳에서 답을 찾을 수 있습니다. –