我有以下XAML设置我的 TabControl :
<TabControl Name="TabsControl"
ItemsSource="{Binding Tabs}"
SelectedItem="{Binding SelectedTabViewModel}">
<TabControl.Resources>
<DataTemplate DataType="{x:Type vm:SystemSetupViewModel}">
<v:SystemSetupUserControl />
</DataTemplate>
<DataTemplate DataType="{x:Type vm:RateTablesViewModel}">
<v:RateTablesUserControl />
</DataTemplate>
</TabControl.Resources>
<TabControl.ItemContainerStyle>
<Style TargetType="TabItem">
<Setter Property="Header" Value="{Binding Header}" />
<Setter Property="Width" Value="120" />
</Style>
</TabControl.ItemContainerStyle>
</TabControl>
有没有办法将命令(绑定到我的ViewModel中的方法)添加到特定选项卡,以便每次选择选项卡时都可以执行方法?
答案 0 :(得分:0)
我通常接近这样的方法是将它放在ViewModel中 - 因为你绑定到SelectedItem,你能不能检查旧值!=新值,如果是,请调用方法?您的ViewModel是SelectedItem(看起来是这种情况)还是在View中声明,因此从当前点无法访问?
如果是,那么每个ViewModel都不能实现一个接口,即ISelectedTabCallback,然后执行该方法吗?