没有验证错误时工具提示不显示 WPF

2024-01-24

我搜索并没有看到解决方案。

如果我没有在组合框工具提示属性中设置工具提示,我只能获得显示工具提示的验证。我希望看到验证错误工具提示(当存在时),否则显示组合框属​​性中的工具提示。当我从工具提示属性(即从组合框的属性面板)中删除文本时,验证工具提示显示正常。

Application.Resources (App.XAML) 中用于显示验证错误的工具提示的 XAML 是

    <Style x:Key="StandardComboBoxStyle" TargetType="{x:Type ComboBox}">
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="True">
            <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
        </Trigger>
    </Style.Triggers>
</Style>

我还使用组合框的验证模板,如下所示。它位于用户控件 cs 文件内的 UserControl.Resources 部分。

<ControlTemplate x:Key="comboBoxValidationTemplate">
    <DockPanel Name="myDockPanel">
        <Border BorderBrush="Red" BorderThickness="3">
            <AdornedElementPlaceholder Name="MyAdorner" />
        </Border>
        <TextBlock Text="*" FontWeight="Bold" FontSize="18" Foreground="Red" DockPanel.Dock="Left" />
    </DockPanel>
</ControlTemplate>

控件本身定义如下。请注意,此处未定义其他参考文献(但希望不相关 - 如果有问题,请随时告诉我)。

        <ComboBox x:Name="ExposureTime" SelectedValuePath="Content"
        Text="{Binding ExposureTime, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" IsEditable="True" Validation.ErrorTemplate="{StaticResource comboBoxValidationTemplate}"
        HorizontalContentAlignment="Right" FontSize="18" Margin="136,47,462,0" Height="27" VerticalAlignment="Top" GotFocus="ComboBox_GotFocus_1" LostFocus="ComboBox_LostFocus_1" PreviewTextInput="ExposureTime_PreviewTextInput" Opacity="{Binding BackgroundOpacity, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" FontWeight="Thin" Style="{DynamicResource StandardComboBoxStyle}" SelectedValue="{Binding Mode=OneWay, ValidatesOnDataErrors=True, ValidatesOnExceptions=True}" IsTextSearchEnabled="False" ToolTip="My tooltip test.">
        <ComboBoxItem Content="0.05"/>
        <ComboBoxItem Content="0.1"/>
        <ComboBoxItem Content="0.2" />
        <ComboBoxItem Content="1" />
        <ComboBoxItem Content="2" />
        <ComboBoxItem Content="5" />
        <ComboBoxItem Content="10" />
        <ComboBoxItem Content="20" />
        <ComboBoxItem Content="60" />
        <ComboBox.IsEnabled >
            <MultiBinding Converter="{StaticResource multiBooleanConverter}">
                <Binding Path="NotPerformingExposure" UpdateSourceTrigger="PropertyChanged"/>Th
                <Binding Path="NotPerformingFocusTest" UpdateSourceTrigger="PropertyChanged"/>
            </MultiBinding>
        </ComboBox.IsEnabled>
    </ComboBox>

谢谢! 巴克


在样式触发器中,当出现错误时,您可以将工具提示设置为“验证错误”。当没有错误时,您可以通过操作来执行相同的操作Value的财产Trigger

<Style x:Key="StandardComboBoxStyle" TargetType="{x:Type ComboBox}">
    <Style.Triggers>
        <Trigger Property="Validation.HasError" Value="True">
            <Setter Property="ToolTip" Value="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=(Validation.Errors)[0].ErrorContent}"/>
        </Trigger>
        <Trigger Property="Validation.HasError" Value="False">
            <Setter Property="ToolTip" Value="My tooltip test." />
        </Trigger>
    </Style.Triggers>
</Style>

另一方面,我建议改变Path=(Validation.Errors)[0].ErrorContent to Path=(Validation.Errors).CurrentItem.ErrorContent

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

没有验证错误时工具提示不显示 WPF 的相关文章

  • EditText 中的验证允许 IP 或 Web Url 主机

    我需要对我的 EditText 进行验证 以便它允许我输入有效的 IP 地址格式 即示例 132 0 25 225 or 网址格式 www 例如 www example com 逻辑是 如果用户首先输入任何数值 则验证 IP 将执行操作 否
  • 如何将 WPF UIElement 从可视化树移动到固定页面?

    我的 MVVM 应用程序使用屏幕上的视觉对象将屏幕内容渲染到打印文档 我的视图有一个ContentControl使用DataTemplate资源来确定要显示的内容 但是当我尝试将该内容添加到FixedPage对象 我得到一个Argument
  • 覆盖页面范围内的主题资源

    我想覆盖主题资源 特别是SystemAccentColor 在特定页面的范围内 我已经在广泛的应用范围内成功地做到了这一点 但我无法针对特定页面执行此操作 App xaml 中的 XAML 效果很好
  • 尝试使用自定义类进行用户设置时出现 NotImplementedException

    我正在尝试将窗口的位置保存为用户设置 以便我可以在应用程序启动时恢复它 我使用这种类型的设计器添加一个设置 using System Configuration namespace MyApp Framework SettingsSeria
  • 如何使用 MVVM 打开和关闭新 Windows?

    对于 MVVM 和 WPF 什么是处理打开和关闭新窗口和对话框的好 直接方法 打开和关闭应该由 ViewModel 驱动 对吗 但 ViewModel 不应该知道视图 我通常为此使用接口 例如 如果我想在单独的窗口中编辑记录 我有一个接口
  • 如何将 WPF 窗口置于前面?

    我创建了一个单实例应用程序 并且希望在用户多次启动该应用程序时激活已打开的窗口 这工作正常 但我有一个问题 如果已经打开的窗口超出了另一个应用程序窗口 我必须将其放在前面 我尝试过 window Focus 和 window Show 但它
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c
  • 如何创建向后兼容 Windows 7 的缩放和尺寸更改每显示器 DPI 感知应用程序?

    我是 WPF 和 DPI 感知 API 的新手 正在编写一个在 Windows 7 8 1 和 10 中运行的应用程序 我使用具有不同每个显示器 DPI 设置的多个显示器 并且有兴趣将我的应用程序制作为跨桌面配置尽可能兼容 我已经知道可以将
  • 自定义 jQuery 验证 .addMethod

    我有一个表单 可以根据最小 最大长度验证邮政编码 我需要将所有国家 地区的邮政编码最小设置为 5 位数字 澳大利亚除外 澳大利亚需要为 4 位数字 这是我遇到的问题 validator addMethod AusZip function v
  • 如何使用 ObjectDataProvider 将枚举绑定到 XAML 中的 ComboBox

    我正在尝试绑定一个Enum to a ComboBox 我见过很多人使用ObjectDataProvider但我似乎无法访问它 我还注意到有些人在一段时间内使用它Window Resources 而不是Page Resources但我找不到
  • 如何在MVVM中管理多个窗口

    我知道有几个与此类似的问题 但我还没有找到明确的答案 我正在尝试深入研究 MVVM 并尽可能保持纯粹 但不确定如何在坚持模式的同时启动 关闭窗口 我最初的想法是向 ViewModel 发送数据绑定命令 触发代码来启动一个新视图 然后通过 X
  • WPF 中的调度程序和异步等待

    我正在尝试学习 WPF C 中的异步编程 但我陷入了异步编程和使用调度程序的困境 它们是不同的还是在相同的场景中使用 我愿意简短地回答这个问题 以免含糊不清 因为我知道我混淆了 WPF 中的概念和函数 但还不足以在功能上正确使用它 我在这里
  • EditorTemplate 的嵌套模型的 ASP.NET MVC3 条件验证

    假设你有一个 viewModel public class CreatePersonViewModel Required public bool HasDeliveryAddress get set Should only be valid
  • 单击时显示 Foundation 5 工具提示

    我在跨度上有一个通过基础 5 的工具提示 如下所示 span class has tip tip top title My tool tip i class fi pricetag multiple size 21 i span 这很好用
  • XAML 构建的本地 TFS 到 VSTS 迁移

    目前 我们在本地使用 TFS 2017 update 1 但我们必须在 VSTS 云平台上迁移 TFS 此外 我们还使用自定义构建模板在本地使用 TFS 构建服务器进行 XAML 构建 我们的问题是迁移后所有 XAML 构建定义是否都能正常
  • WPF DataGridTemplateColumn 组合框更新所有行

    我有这个 XAML 它从 ItemSource 是枚举的组合框中选择一个值 我使用的教程是 http www c sharpcorner com uploadfile dpatra combobox in datagrid in wpf h
  • 如何从 XAML 设置 WPF 用户控件属性?

    我试图从 XAML 设置同一用户控件的多个实例的 fill 属性 以便区分它们 我在控件的 C 代码隐藏中使用依赖属性 并在实例化控件时在 XAML 中引用该属性 这是我尝试过的简化示例 首先是用户控件的 XAML
  • 在后台进程中访问 WPF FlowDocument

    在后台访问 WPF FlowDocument 我的问题涉及在 WPF 后台访问 UI 对象 我见过几十个示例应用程序 它们都很简单 易于理解 其中 95 告诉你如何显示进度条 这并不是我想要的 我的问题是这样的 我想通过访问 RichTex
  • 如何从作为 UWP 运行的 WPF 应用程序处理文件激活?

    我有一个WPF我想要处理文件激活的应用程序 我找到了通过向注册表添加特定值来解决问题的解决方案 问题是最终的应用程序应该是UWP应用程序 我正在使用桌面桥来执行此操作 如果应用程序运行为UWP 它无法到达注册表来设置这些特定值 有没有其他方
  • 如何销毁或分离 CollectionView

    我观察到 WPF ItemsControls 的奇怪行为 如果将 ItemsSource 设置为实现INotifyCollectionChanged然后设置ItemsSource为空 则CollectionView创建它是为了向 Items

随机推荐

  • SSDT 未解决参考错误 SQL71561

    我已将数据库导入到数据库项目中 但一开始我就收到了 200 多个有关未解析引用的错误 现在我已经阅读了一些像这样的帖子和网站 http blogs msdn com b bahill archive 2009 08 26 using sel
  • JPA 不急切地加载所有内容

    我在通过 OpenJPA 实现利用 JPA 1 0 时遇到问题 我的数据模型由一个 Trip 组成 该 Trip 与 Leg 具有一对多关系 与 Passenger 具有一对多关系 Leg 和 Passenger 在 PassengerLe
  • SQL 多重连接语句

    当我的 SQL 语句中只有一个内部联接时 它运行得很好 我尝试加入第二个表 现在收到一条错误消息 指出存在语法错误 缺少运算符 这里有什么问题吗 adsFormView SelectCommand SELECT FROM tableCour
  • 如何根据 Big Query 中的 UTC 时间戳在 Data Studio 中显示本地时区的日期/时间

    我希望 Google Data Studio 报告使用用户的本地时区显示销售数据 包括按小时销售的热图报告 我将数据存储在 BigQuery 中 时间戳字段存储为 UTC Per 听起来时间戳应该存储为 UTC 我正在这样做 我认为 Dat
  • 在 PySpark 中使用 Apache Spark 数据帧删除重音的最佳方法是什么?

    我需要从不同数据集中删除西班牙语和其他语言字符的重音 我已经根据这里提供的代码做了一个函数post https stackoverflow com questions 517923 what is the best way to remov
  • OOP Javascript - 隔离类内的对象

    我试图拥有一个可以创建多个实例的主对象 每个实例都继承子对象 具有唯一 隔离的属性 然而 当我这样做时 所有创建的对象的对象属性 更改后 都会发生变化 我可能没有正确解释这一点 但这个例子应该很清楚 Main function Extend
  • JQuery 抖动对错误的影响

    当用户输入不正确的信息时 我试图在我的登录页面上应用摇动效果 此时 如果用户提交了不正确的详细信息 页面将刷新 打印 PHP 通知 并通过 JS 使通知 div 可见 我正在尝试使用变得可见的通知来识别信息不正确并切换摇动效果 HTML d
  • 我想在 print 语句之后而不是之前向用户询问 c 的值。怎么做?

    该程序询问 a b 和 c 的值 然后打印 print 语句 我想在打印 print 语句之前询问 c 的值 set serveroutput on set verify off DECLARE a number a b number a
  • Magento:系统/配置在多选中添加自定义值

    我创建了一个简单的模块 我已经创建了system xml 有一个字段多选我想在多选字段中添加自定义值 是否可以在多选字段中添加自定义值
  • MVC DateTime 文本框格式问题

    我想做类似的事情 model PickupDate ToString d 但 MVC4 不太喜欢这样 PickupDate is a DateTime字段 我想在视图中显示时去掉时间部分 同时保留new id date1 绑定的代码Text
  • Rails ActiveJob - 处理 ActionMailer::DeliveryJob 中的异常的好方法是什么

    我在用ActiveJob Sidekiq在我的 Rails 项目中进行任务处理 我直接使用发送邮件MyMailer some deliver later 它会自动创建一个ActionMailer DeliveryJob任务并将其放入Side
  • 如何使用ndb光标翻到上一页?

    我无法设法进入 ndb 分页中的 上一页 我已经检查过文档 https developers google com appengine docs python ndb queries cursors还有这个类似的在这里提问 https st
  • jQuery 中触发退格键

    如何在 jQuery 中触发退格键事件 以下示例不起作用 var e jQuery Event backspace keyCode 8 myarea trigger e 你实际上无法触发它 例如 您可以从某个输入中删除最后一个字符 但无法触
  • 返回范围的 SQL Select 查询[重复]

    这个问题在这里已经有答案了 可能的重复 MS SQL Server 中的行偏移 https stackoverflow com questions 187998 row offset in ms sql server 我想选择从 x1 到
  • 如何优雅地处理请求中的连接错误?

    我有一个简单的 python 电报机器人 代码如下 import requests import json from time import sleep import os filename bot last update target o
  • 具有自动生成源的 Cmake 可执行文件

    我想从 test runner cpp 中创建一个可执行文件 add executable myexe CMAKE CURRENT BINARY DIR test runner cpp 但这个特定的 cpp 文件本身是在预构建命令中自动生成
  • 如何防止我的 macOS 应用程序同时运行多个实例?

    我有一个应用程序 我允许用户使用启动器应用程序通过首选项启用 登录时打开 请参阅https en atjason com Cocoa SwiftCocoa Auto 20Launch 20at 20Login html https en a
  • 在 Jenkins 中对参数组进行分组和装饰

    我正在编写一个带有相当多参数的 Jenkins 管道作业 并且我正在寻找一种方法visually将它们组合在一起 以便更容易理解 而不是将它们全部扔在那里 我会满足于至少暗示这些参数彼此相关这一事实的任何内容 可能是标题 也可能是盒子 有没
  • 配置更改时 Intent extras 为空

    我创建了一个显示在SurfaceView我可以得到setDataSource通过使用Bundle extras getIntent getExtras 一切正常 直到我尝试设置景观布局land layout xml 我的日志猫是 Cause
  • 没有验证错误时工具提示不显示 WPF

    我搜索并没有看到解决方案 如果我没有在组合框工具提示属性中设置工具提示 我只能获得显示工具提示的验证 我希望看到验证错误工具提示 当存在时 否则显示组合框属 性中的工具提示 当我从工具提示属性 即从组合框的属性面板 中删除文本时 验证工具提