我有一个TabablzControl。其DataContext绑定到MainWindowViewModel
。该MainWindowViewModel
包含属性ListViewModels
,它是TabablzControl的ItemsSource。
TabablzControl的ContentTemplate是一个已定义的UserControl,名为DashBoard (因此,每个DashBoard的DataContext是ListViewModels中的一个项(称为SmallViewModel))。每个DashBoard都包含一个绑定到SmallViewModel的CurrentViewModel属性的ContentControl,与每个CurrentViewModel对应,根据CurrentViewModel的类型以及在DashBoard 的eesource中定义的内容表示方式,ContentControl的表示方式有所不同(即TabablzControl的ContentTemplate)。
我有一些ViewModels
(例如:ViewModel1和ViewModel2)。当CurrentViewModel
为ViewModel1时,绑定到CurrentViewModel的Content将显示资源(在本例中为某些其他UserControls)中定义的内容。
我玩过IntertabClient,但没有帮助
// The TabablzControl in MainWindow:
<dragablz:TabablzControl ItemsSource="{Binding ListViewModels}">
<dragablz:TabablzControl.ContentTemplate>
<DataTemplate>
<local:DashBoard/>
</DataTemplate>
</dragablz:TabablzControl.ContentTemplate>
</dragablz:TabablzControl>
//MainWindowViewModel is the DataContext of MainWindow has a ListViewModels of type ObservableCollection<SmallViewModel>
//Dashboard.xaml is a UserControl and its DataContext is SmallViewModell:
<UserControl.Resources>
<DataTemplate DataType = "{x:Type local: ViewModel1}">
<local: UserControl1/>
</DataTemplate>
<DataTemplate DataType = "{x:Type local: ViewModel2}">
<local: UserControl2/>
</DataTemplate>
</UserControl.Resources>
<ContentControl Content ="{Binding CurrentViewModel}"/>
问题是,每次我拖出一个选项卡时,UserControl1和UserControl2都会不断刷新,因此拖出的选项卡在拖动前的工作会丢失。
谁能告诉我原因以及如何解决?
感谢进阶!