当前位置: 首页 > 知识库问答 >
问题:

如何同步WPF中的几个切换按钮?[关闭]

金坚
2023-03-14

我希望在我的表单的每个选项卡上都有一个切换按钮。随后在代码中使用此切换按钮,根据切换按钮中的值是真还是假来创建脚本。我希望当我选中第一个选项卡上的一个切换按钮时,其他选项卡上所有同名的切换按钮都显示相同的开/关位置。这可能吗?

共有1个答案

越高峻
2023-03-14

您必须查看MVVM模式。

您需要一个ViewModel来存储切换按钮的(公共)状态。

public class ViewModel : INotifyPropertyChanged
{
    private bool? _isToggleButtonChecked;

    public bool? IsToggleButtonChecked
    {
        get => _isToggleButtonChecked;
        set
        {
            if (Equals(_isToggleButtonChecked, value))
                return;

            _isToggleButtonChecked = value;
            OnPropertyChanged();
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
    }
}

然后,您需要将切换按钮isChecked属性绑定到视图模型isToggleButtonChecked:

<TabControl>
    <TabControl.DataContext>
        <local:ViewModel />
    </TabControl.DataContext>

    <TabItem Header="Tab 1">
        <ToggleButton Content="Click me"
                      IsChecked="{Binding IsToggleButtonChecked}"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top" />
    </TabItem>

    <TabItem Header="Tab 2">
        <ToggleButton Content="Click me"
                      IsChecked="{Binding IsToggleButtonChecked}"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top" />
    </TabItem>

    <TabItem Header="Tab 3">
        <ToggleButton Content="Click me"
                      IsChecked="{Binding IsToggleButtonChecked}"
                      HorizontalAlignment="Left"
                      VerticalAlignment="Top" />
    </TabItem>
</TabControl>
 类似资料:
  • 问题内容: 我想使用CSS在html中创建一个切换按钮。我想要它,以便当您单击它时,它保持推入状态,而不是再次单击时它弹出。 如果没有办法仅使用CSS。有没有办法使用jQuery? 问题答案: 良好的语义方式是使用复选框,然后如果未选中,则以不同的方式设置其样式。但是没有好的方法可以做到这一点。您必须添加额外的跨度,额外的div,并且要真正看起来不错,请添加一些javascript。 因此最好的解

  • 我想做的是禁用一个按钮,当我启用另一个按钮时(因此最多可以激活一个按钮),但我对JS的了解非常基础。任何提示都将不胜感激。 Lorem ipsum dolor sit amet,concetetur adipiscing elit。车辆三体间前庭。前庭等扫描电镜。Ut venenatis sagittis孕妇。Nam enim tortor,lacinia pretium dolor sit am

  • 对于我的项目,我希望有一个切换按钮。经过大量研究,我找到了这篇文章。toggle-Switg-in-qt 我在上面的链接上实现了第三个帖子的代码。 这段代码工作正常。缺点是我不明白如何为切换按钮的两种状态添加QLabel?有人想过做这个操作吗?

  • 主要内容:创建切换按钮,切换按钮组,ToggleButton行为,样式切换按钮切换按钮具有两种状态:选择或未选择。 我们通常将两个或多个切换按钮组合成一个组,并允许用户只选择一个按钮或不选择。 创建切换按钮 我们可以使用类的三个构造函数创建一个切换按钮。要创建没有任何字幕或图标的切换按钮。 要创建带有文字说明的切换按钮 要创建带有文字说明和图标的切换按钮。 方法可以将文本设置为,以及方法可以将图像安装到。 切换按钮组 切换组不强制选择至少一个按钮。单击所选的切换按钮可取消选

  • 我正在使用WPF构建一个包含多个按钮的windows窗体应用程序。我想通知用户,他应该加载一个pdf,然后他可以按下其他按钮,通过使加载pdf按钮闪烁/振动,如果用户点击其他地方,没有pdf加载。 例如,如果在Microsoft Paint打开时尝试单击编辑颜色框之外的任何地方,则会发生类似的行为。(见附件gif) 有人有主意吗?

  • 两个(切换)按钮是否可能在片段之间具有同步行为?即:当按钮A在片段A中打开时,我希望按钮B在片段B中的外观也显示为打开。 我该怎么做呢?最终目标是在任何一个片段上都有一个全局按钮。