首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果验证失败,请在WPF中禁用"保存"按钮

验证失败是指在一个应用程序中,用户输入的数据无法通过验证规则。在WPF(Windows Presentation Foundation)应用程序中,可以使用以下方法禁用“保存”按钮:

  1. 在XAML代码中,为“保存”按钮添加一个IsEnabled属性,并将其绑定到一个布尔类型的属性上,例如:
代码语言:<Button Content="保存" IsEnabled="{Binding IsSaveButtonEnabled}"/>
复制
  1. 在ViewModel或代码隐藏中,定义IsSaveButtonEnabled属性,并将其初始值设置为False。
代码语言:txt
复制
public bool IsSaveButtonEnabled { get; set; } = false;
  1. 在ViewModel或代码隐藏中,监听输入数据的变化,并根据数据是否验证通过来更新IsSaveButtonEnabled属性的值。例如:
代码语言:txt
复制
private string _inputData;
public string InputData
{
    get { return _inputData; }
    set
    {
        _inputData = value;
        IsSaveButtonEnabled = IsInputDataValid();
    }
}

private bool IsInputDataValid()
{
    // 在这里编写验证规则,如果验证通过则返回True,否则返回False。
}
  1. 当用户输入的数据验证失败时,IsSaveButtonEnabled属性的值将为False,从而禁用“保存”按钮。

总结:在WPF应用程序中,可以通过绑定IsEnabled属性和一个布尔类型的属性来禁用“保存”按钮。在ViewModel或代码隐藏中,监听输入数据的变化,并根据数据是否验证通过来更新布尔属性的值。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

CA2007:不直接等待任务

如何解决冲突 若要解决冲突,请在等待的 Task 上调用 ConfigureAwait。 可以为 continueOnCapturedContext 参数传递 true 或 false。...一般来说,对于代表应用程序代码(而不是库代码)的项目,可完全禁止显示此警告;事实上,在应用程序代码上运行该分析器(例如 WinForms 或 WPF 项目中的按钮单击事件处理程序)很可能会导致执行错误的操作...如果应将延续任务安排回原始上下文,或者还没有此类上下文,都可禁止显示此警告。...例如,在 WinForms 或 WPF 应用程序按钮单击事件处理程序编写代码时,通常情况下,等待的延续任务应在 UI 线程上运行,因而需要将延续任务安排回原始上下文的默认行为。...抑制警告 可以通过多种方式来禁止显示代码分析警告,包括禁用项目的规则、使用预处理器指令为特定代码行禁用该规则或应用 SuppressMessageAttribute 特性。

1.4K20
  • WPF 已知问题 开启 IsManipulationEnabled 之后触摸长按 RepeatButton 不会触发连续的 Click 事件

    Click 事件 这是有个伙伴在 WPF 官方仓库报告的问题,详细请看 https://github.com/dotnet/wpf/issues/8223 原始的问题是他发现放在 ListBox 里面的...,触摸长按 RepeatButton 按钮,将发现 Click 事件不会源源不断触发。...层为了实现触摸下的漫游,从而禁用了提升鼠标,我阅读了代码发现除非来一次重构否则怎么修都是打补丁,预计很长时间都不会解决这个问题 本文以上代码放在github 和 gitee 欢迎访问 可以通过如下方式获取本文的源代码...gitee.com/lindexi/lindexi_gd.git git pull origin b7b624200bcf8ff4797c25c5ee8961b698324670 以上使用的是 gitee 的源,如果...请在命令行继续输入以下代码 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git

    17210

    dotnet 从入门到放弃的 500 篇文章合集

    本文是记录我从入门到放弃写的博客 博客包括 C#、WPF、UWP、dotnet core 、git 和 VisualStudio 和一些算法,所有博客使用 docx 保存 下载:dotnet 从入门到放弃的...获得焦点改变 win10-uwp-访问解决方案文件 win10-uwp-车表盘-径向规 win10-uwp-随着数字变化颜色控件 win10-uwp-隐私声明 win10-uwp-颜色转换 win10-uwp-验证...控件 WPF 修改按钮按下的颜色 WPF 写系统日志 WPF 判断调用方法堆栈 wpf 单例 WPF 只允许打开一个实例 WPF 可获得焦点属性 WPF 在 Alt+Tab 隐藏窗口 WPF 好看的矢量图标...wpf 如何使用 Magick.NET 播放 gif 图片 WPF 如何在 WriteableBitmap 写文字 WPF 如何在应用程序调试启动 WPF 如何在绑定失败异常 WPF 如何画出1像素的线...WPF 拼音输入法 WPF 控件继承树 WPF 提高性能 WPF 播放 gif WPF 渲染级别 WPF 省市县3级联动 WPF 禁用实时触摸 WPF 程序生成类库错误 WPF 等距布局 wpf 绑定

    10.4K20

    WPF 编写一个测试 WM_TOUCH 触摸消息延迟的应用

    本文将告诉大家我编写的测试应 为了能够让 WPF 窗口能接收到 WM_TOUCH 触摸消息,首先需要将 WPF 默认走的实时触摸机制禁用,否则两个触摸接收方法将会打架,在 Windows 层将不会调度...根据 WPF 禁用实时触摸 提供的方法禁用实时触摸,如果没有禁用 WPF 的 RealTimeStylus 实时触摸,就无法拿到 WM_TOUCH 消息,这是因为两套触摸机制将会打架。...TWF_WANTPALM ,则不会缓冲触摸输入的数据包,并且不会在将数据包发送到应用程序之前执行手掌检测。...TWF_WANTPALM ,则不会缓冲触摸输入的数据包,并且不会在将数据包发送到应用程序之前执行手掌检测。...请在命令行继续输入以下代码 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git

    57620

    WPF 稳定的全屏化窗口方法

    本文来告诉大家在 WPF ,设置窗口全屏化的一个稳定的设置方法。在设置窗口全屏的时候,经常遇到的问题就是应用程序虽然设置最大化加无边框,但是此方式经常会有任务栏冒出来,或者说窗口没有贴屏幕的边。...因此如果设备上有开启 DWM 那么进行关闭动画 //禁用 DWM 过渡动画 忽略返回值,若DWM关闭不做处理 Win32.Dwmapi.DwmSetWindowAttribute...//不要改变Style里的WS_MAXIMIZE,否则会使窗口变成最大化状态,但是尺寸不对 //也不要设置回Style里的WS_MINIMIZE,否则会导致窗口最小化按钮显示成还原按钮...WPF属性,否则会破坏RestoreBounds,且WPF窗口自身在最大化时,不会修改 Left Top Width Height 属性 {...//不要改变Style里的WS_MAXIMIZE,否则会使窗口变成最大化状态,但是尺寸不对 //也不要设置回Style里的WS_MINIMIZE,否则会导致窗口最小化按钮显示成还原按钮

    4.9K20

    IIS7完全攻略之失败请求跟踪配置

    在”编辑网站失败请求跟踪设置”对话框,选择”启用”,以便为该站点启用日志记录。   6. 在”目录”文本框,键入要用于存储日志文件的路径,或者单击浏览按钮(”…”)在计算机上查找所需的位置。...如果在第 8 步中选择了”ASPNET”跟踪提供程序,请在”添加失败请求跟踪规则”对话框的”选择跟踪提供程序”区域中的”区域”下,选择此提供程序要跟踪的以下一个或多个功能区域:   - 结构 – 当要跟踪主要与进入和离开...如果在第 8 步中选择了”WWW 服务器”跟踪提供程序,请在”添加失败请求跟踪规则”对话框的”选择跟踪提供程序”区域中的”区域”下,选择此提供程序要跟踪的以下一个或多个功能区域:   - 身份验证 –...当要跟踪身份验证尝试时,例如,跟踪已通过身份验证的用户名、身份验证方案(匿名、基本等)以及身份验证尝试的结果(成功、失败、错误等)时。   ...注: 必须指定至少一个跟踪提供程序才能使”完成”按钮启用。 (六)删除失败请求跟踪规则   如果不再需要跟踪特定的请求故障,则可以删除失败请求的跟踪规则。

    2.2K40

    Confluence 6 为登录失败编辑,禁用和配置验证

    在默认的情况下,验证码将会在失败登录次数达到的时候显示。 如果为登录失败编辑,禁用和配置验证码: 在屏幕的右上角单击 控制台按钮 ?  ...在 最大允许授权失败尝试次数(Maximum Authentication Attempts Allowed)的输入框输入数字,这个数字必须大于 0。...希望 禁用(disable)验证码,取消选择 启用(Enable)的选择框。 选择 保存(Save)。 屏幕截图:为登录失败配置验证码 ? 备注 禁用所有密码配置请求,包括在登录中使用验证码。 ...Confluence 安装的允许自动用户授权功能可能在 Confluence 安全策略和密码确定互道影响。...请参考Recognized System Properties 页面的内容。

    1.3K10

    使用 Replication Manager 迁移到CDP 私有云基础

    如果没有现有的peer,除了一条短消息之外,您只会看到一个添加peer点按钮如果peer已存在,则它们会显示在“peer”列表。 单击添加peer。...单击更新peer以保存更改。 要删除peer,请选择peer并单击操作>删除。 使用 SAML 身份验证配置peer 如果您的集群使用SAML 身份验证请在创建peer点之前执行以下操作。...如果源数据包含加密子目录,请在复制策略创建排除正则表达式以在复制期间排除该子目录。创建另一个复制策略来复制加密的子目录。这是因为,如果源数据存在加密的子目录,则基于快照差异的复制可能会失败。...输入应保存源文件的目标路径。 选择一个时间表: 在用户名运行字段输入运行复制作业的用户。默认情况下,这是hdfs. 如果要以其他用户身份运行作业,请在此处输入用户名。...禁用可快照目录 要为启用了快照的目录禁用快照,请使用 右上角下拉菜单按钮禁用快照。如果目录的快照存在,则必须先将其删除,然后才能禁用快照。

    1.8K10

    WPF 按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响

    本文来告诉大家按钮 Button 的 IsEnabled 属性对 WindowChrome 的 IsHitTestVisibleInChrome 的影响 在 WPF 的默认交互是点击标题栏的时候,如果是双击标题栏...而如果在标题栏放一个按钮,此时按钮默认是没有收到点击的,详细请看 WPF 非客户区的触摸和鼠标点击响应 如果想要让按钮能收到点击,需要使用 WPF 非客户区的触摸和鼠标点击响应 的方法,让 WPF按钮加上...此时双击标题栏的按钮不会让窗口最大化,但如果此时的按钮设置 IsEnabled=”False” 那么此时双击将依然让窗口最大化 而有趣的是如果按钮 A 设置了 WindowChrome.IsHitTestVisibleInChrome...尽管第一个按钮是覆盖整个窗口大小的,同时设置了 WindowChrome.IsHitTestVisibleInChrome 属性,但是被第二个按钮覆盖的地方,双击标题栏会让窗口全屏 因此在 WPF ,...是否禁用标题栏的默认行为,是根据命中的元素决定的。

    1.6K30

    WPF 非客户区的触摸和鼠标点击响应

    默认在 WPF 里面是不响应非客户区的鼠标事件,但响应触摸事件 在没有喝下午茶的时候 lsj 告诉我,在项目里面在一个定制的窗口里面的非客户区用鼠标点击不了一个按钮,但是用触摸可以点击按钮。...触摸,但不响应鼠标点击和 Pointer 触摸 如果需要在非客户区也就是窗口标题栏支持鼠标点击,那么请在按钮添加附加属性 WindowChrome.IsHitTestVisibleInChrome 为...WindowChrome.IsHitTestVisibleInChrome="True"/> 这里的 WindowChrome.IsHitTestVisibleInChrome 支持继承,也就是可以在窗口设置,这样所有在窗口里面的按钮都支持在标题栏点击...,也就是这里是 WPF 处理的 我和 lsj 说也许是之前的 WPF 框架的大佬写的时候还不知道有触摸,于是处理了鼠标事件。...如果你想持续阅读我的最新博客,请点击 RSS 订阅,推荐使用RSS Stalker订阅博客,或者前往 CSDN 关注我的主页 本作品采用 知识共享署名-非商业性使用-相同方式共享

    1.3K20

    精:dotnet 简单方法在一个进程内同时跑起 WPF 和 ASP.NET Core 框架

    接下来我给出一张截图,说不定大家看到了截图就知道了实现方式了 如上图,我在 WPF 应用的按钮里面点击的时候,启动了 ASP.NET Core 框架 具体的实现方法是: 将 WPF 和 ASP.NET...这里需要敲黑板,项目的数量影响的是程序集,不直接影响进程的数量 比如上图给出的方法就是只新建 WPF 和 ASP.NET Core 项目,接着在 WPF 项目的按钮点击事件里面,调用到 ASP.NET...Core 项目的 Main 静态函数里面,将 ASP.NET Core 的主机启动 启动 ASP.NET Core 的主机需要使用 Task.Run 的方式,如果不想 Task.Run 的方式,可以将...gitee.com/lindexi/lindexi_gd.git git pull origin 0bb1705e0118208f4134b5334ace9ee84270eb5f 以上使用的是 gitee 的源,如果...请在命令行继续输入以下代码 git remote remove origin git remote add origin https://github.com/lindexi/lindexi_gd.git

    17610

    【愚公系列】2023年11月 WPF控件专题 Validation控件详解

    在用户输入年龄时,会自动调用IntRangeValidationRule的Validate方法,进行验证如果验证失败,就会显示错误信息。...如果设置为true,则在数据对象的实现中指定的验证逻辑将自动应用。ValidationStep:指定验证发生的时间。...2.常用场景WPFValidation控件常用场景有:表单验证:在用户输入数据时,需要对数据进行验证,以确保数据的正确性。...数据验证规则:WPF的Validation控件允许我们创建自定义的数据验证规则,以满足不同的验证需求。...我们还实现了RegisterCommand的CanExecute方法,这个方法检查所有属性是否满足要求,如果满足则返回true,否则返回false,这样Register按钮的IsEnabled属性就会自动生效

    41312

    WPF 框架开发 调试和开发 XAML 构建过程的 PresentationBuildTasks 方法

    本文也适合想要了解 WPF 的 XAML 构建过程的开发者阅读,本文提供了可以断点调试 WPF 的 XAML 构建过程的方法和代码 本文非新手友好,有大量构建和预编译知识,请在阅读本文之前自行了解这部分知识...更多请看 手把手教你写 Roslyn 修改编译 在 WPF ,构建 XAML 用的是 PresentationBuildTasks 任务进行构建,核心使用的是 dotnet sdk 提供的构建调度功能...包编写扩展编译的时候,正确使用 props 文件和 targets 文件 - walterlv 和 如何创建一个基于 MSBuild Task 的跨平台的 NuGet 工具包 - walterlv...请在使用时,安装好 .NET 5 或更新版本的 SDK 然后将你的需要测试的 XAML 文件和代码加入到 PresentationBuildTasksTest 测试项目里面。...先打开 PresentationBuildTasksTest.sln项目,然后开始构建即可,如果第一次构建失败,请重新启动 VisualStudio 再次构建,原因是 msbuild 占用 PresentationBuildTasks

    68730

    WPF 解决 SelectionTextBrush 设置无效问题

    本文告诉大家在 WPF 里面设置 SelectionTextBrush 无效的问题,可以通过 AppContext 的开关开启其行为 如以下的代码,设置被选择的文本的字符颜色为红色 ...为了 WPF 提出新的 Switch.System.Windows.Controls.Text.UseAdornerForTextboxSelectionRendering 开关,用于控制 WPF 的文本选择是否采用...当采用在 .NET Framework 4.7.2 引入的禁用 Adorner 层绘制文本选择范围时,由于底层机制的变更,能够支持在 .NET Framework 4.8 引入的 SelectionTextBrush...gitee.com/lindexi/lindexi_gd.git git pull origin 15ab047a99f4327e21ce406430651bc79a950a7a 以上使用的是 gitee 的源,如果...请在命令行继续输入以下代码,将 gitee 源换成 github 源进行拉取代码 git remote remove origin git remote add origin https://github.com

    17510

    Python自动化测试WPF应用

    1.概要 在做WPF的开发在某些场景下会需要进行重复的行为进行各方面覆盖测试,例如: 希望在注册环节输入大量的密码来则是正则表达式是否严谨。...这个时候如果纯手动操作会非常影响进度效率低下,这个时候单独开一台机器跑自动化测试的脚本来辅助测试,不需要有人值守在傍边就可以完成这样的工作可以说是一件非常节约生命的事情。...IDE:VS 2022 环境:.NET 6 2.详细内容 自动化测试示例1 测试内容:自动点击窗体的某个按钮。...pip install pyautogui 代码: pyautogui这个包的特点是根据图像来识别要点击的图片,所以需要把你要点击的按钮截图下来保存与py脚本同一级目录下(只用截图按钮即可)。...运行效果: 自动化测试示例2 测试内容:自动向文本框输入一段字符串,然后点击按钮验证输入的内容。

    29720

    C# API的模型和它们的接口设计

    不过,如果你尝试单击“保存按钮同步检查验证状态,那这就不是一个好办法。 此外,ErrorsChanged理论上可以触发两次:一次是立即触发,另一次是异步验证完成后触发。...如果你需要异步验证某些内容,请在控制器或视图模型执行此操作。...字典应该保存什么以及在验证期间何时可以访问它?...ISupportInitialize/ISupportInitializeNotification ISupportInitialize的目的是临时禁用属性/集合变更通知、错误验证等。...从理论上讲,CollectionChanged相关事件可以使用单个事件来告诉我们何时已将整组对象添加到集合或从集合删除。但实际上,因为WPF存在的设计缺陷导致无法实现这样的功能。

    1.6K20

    WPF 程序鼠标在窗口之外的时候,控件拿到的鼠标位置在哪里?

    WPF 程序,我们有 Mouse.GetPosition(IInputElement relativeTo) 方法可以拿到鼠标当前相对于某个 WPF 控件的位置,也可以通过在 MouseMove...---- 可用于演示的 DEMO 直接使用 Visual Studio 2019 创建一个空的 WPF 应用程序。默认 .NET Core 版本的 WPF 会带一个文本框和一个按钮。...我们现在就用这两个按钮来显示 Mouse.GetPosition 获取到的值。...如果不知道客户区是什么,可以阅读下面我的另一篇博客: WPF 使用 WindowChrome,在自定义窗口标题栏的同时最大程度保留原生窗口样式(类似 UWP/Chrome) 在以上图中,我拖动改变了窗口的位置...如果此方法成功,将返回非零的坐标值;如果失败,将返回 0。 而鼠标在窗口客户区之外的时候,此方法将返回 0,并且经过后面的 ToPoint() 方法转换到控件的坐标下。

    65140

    WPF性能优化:Freezable 对象

    那是不是WPF的所有资源都可以(需要)使用Freeze方法冻结来提高性能呢? Freezable类通常用于WPF的资源和动画,例如创建可重用的画刷、几何图形和动画。...,WPF图形子系统使用你提供的信息来绘制一组像素,以创建按钮的外观。...尽管使用纯色画笔来描述按钮的绘制方式,但纯色画笔实际上并没有进行绘制。图形系统为按钮和画笔生成快速、低级别的对象,实际显示在屏幕上的就是这些对象。 如果要修改画笔,则必须重新生成这些低级别对象。...为避免引发InvalidOperationException,请在尝试冻结Freezable对象之前检查该对象的CanFreeze属性值,以确定是否可以将其冻结。...为了消除克隆导致的性能开销,如果需要对对象进行动画处理,请让其保持解冻状态。

    35830
    领券