c# - 如何在 xaml 中绑定(bind) tabitem 的 isselected 属性

标签 c# wpf xaml mvvm

我的 mainwindow.xaml 上有 5 个选项卡。每个选项卡上都有一个按钮。单击按钮时,我必须将 View 更改为下一个选项卡。

我可以通过将 TabItemIsSelected 属性绑定(bind)到我之前的按钮命令属性(我启用/使用命令禁用按钮)?

我的 CanExecute 将检查按钮的 IsEnabled 属性。

我可以通过更改 SelectedTabIndexSelectedTabItem 在后面的代码中执行此操作。但是我可以在 xaml 中执行此操作以遵循 MVVM 模式吗?

如果我的问题不是有效问题,请忽略它。

注意:我的标签不是来自模板。

最佳答案

使用 TabControl 的样式:

<Style TargetType="TabControl">
        <Setter Property="SelectedIndex" Value="{Binding SelectedIndex}"/>
</Style>

将相同的 Command 绑定(bind)到所有按钮,并在每次点击时不断增加 ViewModel 中的 SelectedIndex 属性。

ViewModel 中的属性:

private int selectedIndex;

public int SelectedIndex
{
    get { return selectedIndex; }
    set { selectedIndex = value;
    UpdateProperty("SelectedIndex");
    }
}

命令操作:

SelectedIndex++;
if (SelectedIndex == 5)
{
    SelectedIndex = 0;
}

check for SelectedIndex = 5 cause your tab are fixed.else you have to bind count of items in a property of ViewModel and then put a check.

关于c# - 如何在 xaml 中绑定(bind) tabitem 的 isselected 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35414014/

相关文章:

c# - 如何确保 StringBuilder 对象在多线程环境中被 GCed? (鉴于我不能使用 using 关键字)?

c# - 如何将 DocumentColorizingTransformer 添加到 AvalonEdit

c# - WPF TextBox UpdateSourceTrigger=LostFocus 不断更新数据

c# - WPF 控件的公共(public)类修饰符

c# - 当 TextBox 子项失去焦点时,ScrollViewer 跳到顶部

C# HTML 敏捷包,从 div 中提取纯文本

c# - Java 格式 Date to UTC 有时会产生 '????-??-??T??:??:??.???Z'

c# - 如果文本未更改,是否会触发 TextChanged 事件?

c# - 指定的元素已经是另一个元素的逻辑子元素。先断开它。在用户控制中

wpf - 如何正确使用 CefSharp for WPF?