拖出标签后如何防止刷新内容

时间:2019-05-28 12:43:51

标签: c# wpf xaml material-design-in-xaml

我有一个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都会不断刷新,因此拖出的选项卡在拖动前的工作会丢失。

谁能告诉我原因以及如何解决?

感谢进阶!

0 个答案:

没有答案