WPF:将TabControl.Selected事件添加到DataTemplate

时间:2014-08-14 13:55:27

标签: c# wpf tabcontrol

我有以下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中的方法)添加到特定选项卡,以便每次选择选项卡时都可以执行方法?

1 个答案:

答案 0 :(得分:0)

我通常接近这样的方法是将它放在ViewModel中 - 因为你绑定到SelectedItem,你能不能检查旧值!=新值,如果是,请调用方法?您的ViewModel是SelectedItem(看起来是这种情况)还是在View中声明,因此从当前点无法访问?

如果是,那么每个ViewModel都不能实现一个接口,即ISelectedTabCallback,然后执行该方法吗?