如何取消选中 WPF (MVVM) 中的单选按钮

2024-03-31

我有一个单选按钮组。该选择并不强制要求填写表格。一开始,所有单选按钮都未被选中。如果用户无意中点击了其中一项,他就无法返回,因为至少需要检查一项。

那么如何取消选中单选按钮而不强迫用户做出不需要的选择呢?

附注该表单是在运行时构建的,我遵循 MVVM 设计模式。 对于强制选择,单选按钮解决方案非常适合,我已经在本例中使用了它。


尝试这个:

public class OptionalRadioButton : RadioButton
{
    #region bool IsOptional dependency property
    public static readonly DependencyProperty IsOptionalProperty = 
        DependencyProperty.Register(
            "IsOptional", 
            typeof(bool), 
            typeof(OptionalRadioButton), 
            new PropertyMetadata((bool)true,
                (obj, args) =>
                {
                    ((OptionalRadioButton)obj).OnIsOptionalChanged(args);
                }));
    public bool IsOptional
    {
        get
        {
            return (bool)GetValue(IsOptionalProperty);
        }
        set
        {
            SetValue(IsOptionalProperty, value);
        }
    }
    private void OnIsOptionalChanged(DependencyPropertyChangedEventArgs args)
    {
        // TODO: Add event handler if needed
    }
    #endregion

    protected override void OnClick()
    {
        bool? wasChecked = this.IsChecked;
        base.OnClick();
        if ( this.IsOptional && wasChecked == true )
            this.IsChecked = false;
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何取消选中 WPF (MVVM) 中的单选按钮 的相关文章

随机推荐

  • Dotnet 构建失败:Linux 中的代理背后的 NuGet

    这看起来可能是一个类似的issue https stackoverflow com questions 9232160 nuget behind a proxy但在 CentOS 上 我已经尝试过此线程以及其他线程上的所有解决方案 但是我仍
  • 在 nginx 反向代理后面配置 IdentityServer4

    我的 WebApi 受 nginx 反向代理后面的 IdentityServer4 保护 代理通行证配置 location api proxy pass http 127 0 0 1 3110 proxy set header Host h
  • Prism 实际上为开发者提供了什么?值得吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 无线 ADB

    嘿 我想知道你还需要 root 才能执行此操作吗 我想通过无线安装 运行应用程序以停止所有这些电缆切换 我还读到它可能会导致一些错误 那是在这个网站上的旧帖子上 我想知道现在是否可靠且容易做到 不需要生根 连接 USB 电缆后 跨所有相关防
  • Spring Boot / Spring Data import.sql 不运行 Spring-Boot-1.0.0.RC1

    我一直在关注 Spring Boot 的开发 有时在初始版本之间0 0 5 BUILD SNAPSHOT以及我当前使用的版本1 0 0 RC1我不再运行我的import sql script 这是我的配置LocalContainerEnti
  • 钥匙串出现问题:iPhone 分发证书不受信任

    我正在开发 iOS 企业应用程序 现在我们的 iOS 分发证书已过期 我正在使用以下步骤创建新证书 从钥匙串访问创建证书签名请求 使用developer apple com登录并使用证书签名请求生成分发证书 下载新的 iOS 分发证书并安装
  • SQL [硬查询 - 进行或避免]

    SELECT Name NOT ID ListGroupParIzm IN SELECT ID Param FROM TbUserParam WHERE ID User ID User Visi FROM CfgListParIzm WHE
  • 从抽象类中与实际类中同名的另一个方法调用方法

    我有一个抽象类和一个扩展它的类 两个类中有一个具有相同名称的方法 我想在抽象类的另一个方法中调用抽象类中的方法 控制器 java public abstract class Controller public Result delete L
  • iOS 8 GM 不会更新集合视图的约束

    在 Xcode 6 Beta 7 和之前的所有版本中 我有一个集合视图 当 iPad 在横向和纵向之间旋转时 它会更新其单元格的约束 现在 它根本没有更新 事实上 它看起来就像我把它留在 XIB 中一样 这对我来说意味着它根本没有更新 看来
  • selenium v​​ba代码将网页缩小到60%

    我正在尝试使用下面的代码将网页缩小到 60 但是此代码不起作用 而且我也没有收到任何错误 请纠正我的错误 下面是我的代码 driver ExecuteScript window document body style zoom 60 要将网
  • 使用pyKML解析KML文档

    我正在使用 pyKML 模块从给定的 KML 文件中提取坐标 我的Python代码如下 from pykml import parser fileobject parser fromstring open MapSource kml r r
  • 如何创建具有动态字段名称的 Formik YUP 架构?

    如何创建具有动态点表示法字段名称的 YUP 模式 以下架构无效 如何动态迭代 Costs 0 item Costs 1 item Costs 2 item 和 Costs 0 amount Costs 1 amount Costs 2 am
  • 拖放到 Windows 10 上运行的 Visual Studio 2017 中不起作用

    我一直能够将源代码文件拖到 Visual Studio 编辑器中打开它们 这非常方便 但最近它不再起作用了 我以为问题是我升级到 VS2017 但读了几篇文章后类似的问题 https stackoverflow com questions
  • 如何用Spring Boot微服务实现编排? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 在 Spring Boot 中编排微服务的最佳方式是什么 你有很多选择 但我会列出其中 3 个我会选择的 使用 REST 调用直接调用其他微服务
  • Pyserial 不能很好地与虚拟端口配合使用

    动机 我想开始学习如何使用python库Pyserial https github com pyserial pyserial 这似乎是一个非常好的图书馆 适合很多人 我想将它用于即将进行的项目 在该项目中我必须自动化串行通信 环境 我运行
  • 尝试在 gridview 中显示图像时出现 java.lang.outofmemoryerror 异常

    我试图显示 6 个图像 我将它们保存在 gridview 的 res drawable 文件夹中 但我收到以下错误 10 29 09 44 20 025 E AndroidRuntime 1549 FATAL EXCEPTION main
  • WordPress:永久删除自定义帖子类型帖子。删除:“1 个帖子已移至垃圾箱。撤消”消息

    抱歉 如果已经有答案 但我找不到 所以我有这个脚本可以从自定义帖子类型中永久删除帖子 它确实永久删除了该帖子 但删除后我收到此消息 But I want this message gone because even if u the pre
  • 使用当前模态将数据从一个 uiviewcontroller 发送到另一个导航控制器

    我是 Swift 新手 我正在使用情节提要 并使用导航控制器从一个视图控制器连接到另一个视图控制器 我想将单击的图像的名称发送到下一个视图控制器 该视图控制器在故事板中从 imageView 进行模态连接 我搜索了很多有关将数据从一个视图控
  • 在 Windows 7 64 位企业版上安装 Delphi 2007 时出现问题

    我在 Windows 7 64 位企业版上安装 Delphi 2007 RAD Studio Professional 时遇到问题 一切都很好 直到我输入安装序列号 输入它并单击安装向导中的下一步按钮后 我在第 906 行收到安装脚本错误
  • 如何取消选中 WPF (MVVM) 中的单选按钮

    我有一个单选按钮组 该选择并不强制要求填写表格 一开始 所有单选按钮都未被选中 如果用户无意中点击了其中一项 他就无法返回 因为至少需要检查一项 那么如何取消选中单选按钮而不强迫用户做出不需要的选择呢 附注该表单是在运行时构建的 我遵循 M