我正在使用棱鏡RegionManager
,在MainView
內註冊不同視圖與TabControl
區域。使用棱鏡關閉動態添加的選項卡項目 - WPF
MainView.xaml
<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我加入具有相同的基本類不同的看法。
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
}
是否有沒有按一個鏈接是否需要註冊才能獲得解決方案?我認爲這個網站上沒有鏈接要求他註冊免費試用版。 –
事實上,正如[此處](https://meta.stackoverflow.com/a/272885/7604843)所述,如果您鏈接到商業來源,它必須是對已經完整答案的補充,或者您應該提供與答案無關的材料。 –
他想要一個免費的答案,他可以免費試用以獲得答案。如果他已經訂閱了,那更容易。答案就在那裏,如果申請審判太多而不能要求解決方案,那麼他可以在其他地方找到答案。 –