问题标签 [multidatatrigger]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
381 浏览

wpf - TabItem BorderBrush 未在 IsMouseOver 触发器上更新

我有一个 MultiDataTrigger,如果我的视图模型中的属性为真并且 TabItem 上的 IsMouseOver 为真,那么边框应该显示为红色,厚度为 2.5。

我无法让属性和 IsMouseOver 都工作,所以我只尝试了我的属性。这工作正常,但仍然有预期的问题,它会变成红色,厚度为 2.5,直到我将鼠标悬停在选项卡上。所以我然后尝试取出我的视图模型属性,并将 IsMouseOver 检查作为条件。这行不通。下面是只有 IsMouseOver 的代码。

我使用 Mike Strobel 关于覆盖 TabItem 模板的建议修复了它。现在,只要我的 ViewModel 属性为真,我的红色边框就会显示,无论鼠标是否悬停在 TabItem 上。这是我的解决方案(我在我修改的代码区域周围添加了注释):

0 投票
1 回答
97 浏览

c# - 多数据触发器而不是多绑定的优势是什么?

我希望当属性更改时,分析属性的值并设置文本块的文本。我有这个:

使用多重绑定:

多数据触发:

我看到的主要区别是在多重绑定中我需要一个多值转换器。但是,对于多数据触发器,我需要设置所有组合以根据属性的值设置我想要显示的不同文本,所以这是一项非常艰苦的工作。

所以我怀疑哪个是多数据触发器的优势,因为我需要设置许多组合,并且使用多绑定我创建了一个转换器,它还允许复杂的比较,如大于,小于......使用多数据触发器只有一个值对于每个组合。

总而言之,什么时候使用多绑定,什么时候多数据触发?多绑定的优势和多数据触发器的优势是什么?

非常感谢。

0 投票
1 回答
526 浏览

c# - 将此绑定转换为 MultiDataTrigger 绑定

我有这个绑定,我们用它来选择性地显示/隐藏元素:

我现在有一个元素,我需要根据上述绑定和对命令行参数“Setup”的绑定有选择地显示/隐藏:

我需要将这两个绑定都应用于以下内容,因此仅在“设置”模式和“InputFileIsNeeded”为真时才显示以下元素:

我很难将 XPath 绑定到 MultiDataTrigger。我试图跟随但得到两个错误(1)预期的'}'(在“XPath =”上)和(2)我显然不能在这里使用,因为没有特定的元素(我认为这将在 Condition 元素内)。

有人可以告诉我如何使用 MultiDataTrigger 或其他机制绑定这两个属性吗?

0 投票
2 回答
1474 浏览

c# - 在 WPF 中验证文本框时启用按钮

我正在尝试在验证文本框时禁用/启用按钮。

我得到了验证(我知道它有效,因为它改变了设计)。但是当文本框被验证时,我似乎无法让按钮从禁用更改为启用。

这是我的代码:

...

0 投票
0 回答
270 浏览

c# - C#/WPF - 共享样式设置器

我正在尝试设计一组显示设备级别的控件。

我正在使用具有多数据触发器样式的标签控件,该触发器检查该字段的值是否在某个值之间,并应用突出显示以指示错误。

我试图解决的问题是通常有两种或三种状态:正常、警告和错误。这些状态适用于多个领域。

我希望能够将触发器的设置器合并到一个可以单独存储的静态资源中,比如一个列表,然后简单地使用这个列表作为 MultiDataTrigger.Setters 的值。通过这种方式,我可以将我的错误和警告状态定义为 setter 的集合,并从中心位置更新它们。

IE:

我遇到的问题是 DataTrigger/MultiDataTrigger 的 Setters 属性没有设置方法,并且需要触发器来确定状态。

有什么办法可以完成我想要的吗?

可能的解决方案:

  • 一个接受范围列表并应用正确样式的控件
  • 将设置器从一个触发器复制/粘贴到另一个*当前使用此 *
  • @PieterWitvoet 推荐StyleSelector

编辑

我创建了一个用户控件来完成我想要的。C#

我正在使用下面的基类来定义规则

例如:

在 XAML 中:

0 投票
1 回答
425 浏览

c# - MultiDataTrigger 一旦按钮 isEnabled 属性从后面的代码更改,就不会触发

我有一个基于几个文本框的validation.hasError 属性启用/禁用的按钮,它工作正常,直到我想根据一些业务逻辑从代码中禁用和启用这个相同的按钮。例如。

if(recordExist) { btn.IsEnabled=true;} else{ btn.isenabled=false;}

现在发生的情况是,一旦else执行了逻辑并且按钮被禁用,即使validation.HasError所有控件返回 false,按钮也不会再次重新启用。同样,如果执行if逻辑并启用按钮,即使validation.hasError返回 true,它也会保持启用状态。我想要的是以某种方式重新触发multiDataTriggers以检查并Validation.hasError相应地textboxes更新isEnabled按钮的属性。我希望我足够清楚。

0 投票
0 回答
89 浏览

c# - c# Wpf 4 MultiDataTriggers

我想创建一个按布尔值和isMouseOver值更改的按钮。

  • 播放器正在播放 -> Pause_grey.png
  • 播放器正在播放 & mouseIsOver-> Pause_blue.png
  • 播放器已停止 -> Play_grey.png
  • 播放器停止 & mouseIsOver -> Play_blue.png

我想用 4 执行此操作,MultiDataTrigger但是当playStatus(的布尔值dataContext)更改时,按钮无法识别它

代码:

按钮:

按钮样式:

所以有人知道如何让这个工作吗?:)

编辑1:

我不知道如何设置,或者我是否可以设置INotifyPropertyChanged,因为它的价值:

EDIT2: 我试过了,但它不起作用

也许我应该像在 listView 中那样手动调用更新,但我不知道如何更新条件。在 ListView 中,它看起来像:

所以我尝试了:

但它说:

System.NullReferenceException

....问题是为什么?

0 投票
1 回答
265 浏览

wpf - 在 WPF 中使用多重绑定简化 style.triggers

在查看我多年前编写的一些代码时,我在我的 WPF 样式部分中遇到了这个触发器。可以看出,我使用对 Checkin、Checkout 和 NotSeen 的完全相同的引用调用 MultiBinding 转换器 7 次,以产生 7 种不同的颜色。这让我觉得非常多余和占用空间。一定会有更好的办法。

有没有办法用更短的风格来完成这个?此外,他们是在 MVVM 框架中完全避免 MultiBinding Converter 的一种方式吗?可以使用附加行为来代替它吗?

TIA

0 投票
3 回答
3950 浏览

wpf - 如何使用 wpf 中的数据触发器比较 2 个字符串

我有一个名为 Name1 和 Name2 的两个属性。

我如何检查这两个属性是否具有相同的值,即不使用 XAML 中的数据触发器。

Name1 属性在 Class1 中,而 Name2 属性在 Class2 中。

更详细地说,

  1. 我有一个名为 Pages 的类,它具有属性 Name1。在应用程序加载时,我将创建一个 List 对象并向该列表添加一些值。在 XAML 中,我会将它绑定到 ItemSource。

  2. 我有另一个名为 CurrentPage 的类,它再次具有名为 Name2 的属性。

  3. 在 ItemSource.ItemTemplate 中,我添加了一个标签控件来显示所有 Pages 的名称。

  4. 如果标签的 BG 颜色等于当前页面内容,我正在尝试更改它。

但是我收到错误并且样式没有加载。我知道我在比较 Name2 和 Name1 的部分是错误的..() 请任何人帮助我

0 投票
2 回答
22421 浏览

c# - WPF MultiDataTrigger AND 条件

只有当我的两个数据网格都选择了项目时,我才想启用一个按钮。现在,当任何一个数据网格有选择时,它就会启用。有任何想法吗?