TabControl WPF MVVM中的延迟加载(但是,再次)

时间:2016-07-08 17:33:04

标签: c# wpf mvvm tabs lazy-loading

我知道,topic discussedtimes https://jsfiddle.net/ffsojvw4/,所以直截了当。

这是ItemsSource的{​​{1}}:

TabControl

这是Tabs = new ObservableCollection<aTabViewModel> { new HomeViewModel(), new StatisticsViewModel() }; 本身

TabControl

<TabControl ItemsSource="{Binding Tabs}"> <TabControl.Resources> <DataTemplate DataType="{x:Type pagesVM:HomeViewModel}"> <pages:Home/> </DataTemplate> <DataTemplate DataType="{x:Type pagesVM:StatisticsViewModel}"> <pages:Statistics/> </DataTemplate> </TabControl.Resources> <TabControl.ItemContainerStyle> <Style BasedOn="{StaticResource MetroTabItem}" TargetType="TabItem"> <Setter Property="Header" Value="{Binding Header}" /> </Style> </TabControl.ItemContainerStyle> HomeViewModel在我们将它们添加到StatisticsViewModel集合时首次实例化,第二次在我们选择应用程序中的tab时实例化(这似乎是{的行为{1}})。而这种双重装载显然是不对的。

问:如何在选中时加载标签?

1 个答案:

答案 0 :(得分:2)

  

如何在选中时加载标签?

在标签页的GotFocus事件中添加此类加载逻辑,并检查以确认DataContext仅加载一次。