获取视图模型中的选定选项卡(WPF)

我有一个带有选项卡控件的主视图。选择选项卡后,它将调用相应的视图进行显示。我在视图模型中有一个功能,该功能必须知道选择了哪个选项卡来执行操作。我该如何实现?视图模型如何知道选择了哪个选项卡?

感觉美学

很简单:

<Window x:Class="WpfApplication2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfApplication2"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:TestViewModel x:Key="MainViewModel"/>
    </Window.Resources>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>
        <TabControl DataContext="{StaticResource MainViewModel}" 
                    SelectedIndex="{Binding Selected}" 
                    Grid.Row="0" 
                    x:Name="TestTabs">
            <TabItem Header="Section 1"/>
            <TabItem Header="Section 2"/>
            <TabItem Header="Section 3"/>
        </TabControl>
        <Button Content="Check 
                Selected Index" 
                Grid.Row="1" 
                x:Name="TestButton" 
                Click="TestButton_OnClick"/>
    </Grid>
</Window>

该模型在此声明性地定义为数据上下文。selectedindex属性绑定到模型,因此,只要它发生更改,它在视图模型上映射到的属性也将更改

class TestViewModel : INotifyPropertyChanged
{
    private int _selected;
    public int Selected
    {
        get { return _selected; }
        set
        {
            _selected = value;
            OnPropertyChanged("Selected");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    public void OnPropertyChanged(string property)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(property));
        }
    }
}

这实现了INotifyPropertyChanged,因此视图将向其注册。在此处的处理程序中,我输出Selected的值以在更改它们时显示。

public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }

    private void TestButton_OnClick(object sender, RoutedEventArgs e)
    {
        var vm = TestTabs.DataContext as TestViewModel;
        MessageBox.Show(string.Format("You selected tab {0}", vm.Selected));
    }
}

这将获得viewmodel,然后向我们显示属性实际上已更新。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在jQuery中获取选定的选项卡名称

来自分类Dev

在选项卡导航中自动保存淘汰视图模型-如何获取绑定到DOM元素的视图模型

来自分类Dev

在视图模型类中访问选项卡控件

来自分类Dev

WPF中的选项卡控件

来自分类Dev

如何在选项卡视图控制器中为第一个选项卡获取新的视图控制器而不是父视图?

来自分类Dev

WPF MVVM:设置选项卡视图的DataContext

来自分类Dev

如何使用StoryBoard在UITabBarController中设置选定的选项卡?

来自分类常见问题

Bootstrap 3:保持页面刷新中的选定选项卡

来自分类Dev

如何使终端中的选定选项卡更加突出

来自分类Dev

Android:确定片段中的选定操作栏选项卡

来自分类Dev

如何使终端中的选定选项卡更加突出

来自分类Dev

突出显示菜单中的选定选项卡

来自分类Dev

如何在 SelectedTabChangeListener 中识别选定的选项卡?

来自分类Dev

为 QTabWidget 中的非选定选项卡着色

来自分类Dev

在具有多个视图模型的选项卡中单击按钮,导航到另一个选项卡不起作用

来自分类Dev

CSS选项卡问题与选定的选项卡

来自分类Dev

jQuery选项卡-动态返回选定的选项卡

来自分类Dev

在Backbone的选项视图中获取选定模型的最佳方法

来自分类Dev

Twitter Bootstrap选定的选项卡问题

来自分类Dev

Primefaces仅更新选定的选项卡

来自分类Dev

如何仅绘制选定的选项卡

来自分类Dev

如何使选定的选项卡更改颜色?

来自分类Dev

如何更改TabControl选定的选项卡

来自分类Dev

如何覆盖选项卡的选定样式?

来自分类Dev

从选项卡布局中的每个选项卡获取EditText的值

来自分类Dev

Kendoui:单击kendoui中的选项卡时获取选项卡名称

来自分类Dev

从选项卡布局中的每个选项卡获取EditText的值

来自分类Dev

禁用母版页中的选项卡以查看特定视图

来自分类Dev

一个选项卡中的多个视图

Related 相关文章

  1. 1

    如何在jQuery中获取选定的选项卡名称

  2. 2

    在选项卡导航中自动保存淘汰视图模型-如何获取绑定到DOM元素的视图模型

  3. 3

    在视图模型类中访问选项卡控件

  4. 4

    WPF中的选项卡控件

  5. 5

    如何在选项卡视图控制器中为第一个选项卡获取新的视图控制器而不是父视图?

  6. 6

    WPF MVVM:设置选项卡视图的DataContext

  7. 7

    如何使用StoryBoard在UITabBarController中设置选定的选项卡?

  8. 8

    Bootstrap 3:保持页面刷新中的选定选项卡

  9. 9

    如何使终端中的选定选项卡更加突出

  10. 10

    Android:确定片段中的选定操作栏选项卡

  11. 11

    如何使终端中的选定选项卡更加突出

  12. 12

    突出显示菜单中的选定选项卡

  13. 13

    如何在 SelectedTabChangeListener 中识别选定的选项卡?

  14. 14

    为 QTabWidget 中的非选定选项卡着色

  15. 15

    在具有多个视图模型的选项卡中单击按钮,导航到另一个选项卡不起作用

  16. 16

    CSS选项卡问题与选定的选项卡

  17. 17

    jQuery选项卡-动态返回选定的选项卡

  18. 18

    在Backbone的选项视图中获取选定模型的最佳方法

  19. 19

    Twitter Bootstrap选定的选项卡问题

  20. 20

    Primefaces仅更新选定的选项卡

  21. 21

    如何仅绘制选定的选项卡

  22. 22

    如何使选定的选项卡更改颜色?

  23. 23

    如何更改TabControl选定的选项卡

  24. 24

    如何覆盖选项卡的选定样式?

  25. 25

    从选项卡布局中的每个选项卡获取EditText的值

  26. 26

    Kendoui:单击kendoui中的选项卡时获取选项卡名称

  27. 27

    从选项卡布局中的每个选项卡获取EditText的值

  28. 28

    禁用母版页中的选项卡以查看特定视图

  29. 29

    一个选项卡中的多个视图

热门标签

归档