问题标签 [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 投票
3 回答
3052 浏览

c# - 如何以样式访问控件父级的属性

我的 Listview 将项目数据模板化为标签。我正在为该标签设计一种样式,但我不知道如何访问父级的 (ListViewItem) IsSelected 属性。

编辑 - 尝试了以下建议,但仍然出现异常,这是我的完整代码:

0 投票
1 回答
3072 浏览

wpf - 'Setter.Property' 必须具有非空值

我正在 MSDN 网站上阅读这篇文章,以了解 DataTrigger。

我创建了一个看起来像这样的 DefaultViewModel 类。

我的 xamal 代码看起来像这样。

Qeustion/问题:
我正在使用 DataTemplate 重新渲染 ListBox 中的数据。我的意图是根据多个条件突出显示边框的背景(列表项的边框)。例如,如果 TaskPriorty 为 3,TaskDescription 为“WSR”,那么我想用红色突出显示该列表项。但是,当我运行此应用程序时,我收到运行时错误并显示以下消息。 'Setter.Property' 必须具有非空值。

谁能帮我找出问题所在?没有 MultiDataTrigger 一切正常。

谢谢,赫曼特

0 投票
1 回答
1746 浏览

wpf - 为什么不满足 MultiDataTrigger 条件时,Button.IsEnabled 不以 false 开始或重置为 false?

我在办公室任务窗格中托管了一个用于 Word 插件的用户控件。

我尝试按照DataTrigger 的答案使 WPF Button 处于非活动状态,直到 TextBox 具有值Cleanest way to bind a Button's visibility to the contents of two textboxes的答案,以便在两个文本框具有非空内容时启用我的按钮.

转换器:

XAML:

问题:

当文本框中有内容时,转换器返回 true,如果两个文本框中都有内容,则两个转换器都会触发,并且应该应用 setter。我知道会发生这种情况,因为我可以IsEnabled在 setter 中将属性设置为 False,它会停用初始状态被激活的按钮。

相反的情况不会发生:将IsEnabled属性设置为 True 不会启用按钮,其中初始状态已停用(我通过直接在按钮上将 IsEnabled 属性设置为 False 来实现)。我认为这将作为默认状态,而 Setter 会覆盖它。情况似乎并非如此。

我注意到的一些奇怪现象:

在第一个条件发生之前,第二个条件似乎不会触发。即,如果我在触摸第一个文本框之前将一些数据输入到第二个文本框中,则转换器根本不会触发。如果我认为在第一个文本框中输入数据,两个转换器都会触发。

有没有办法只在文本框中存在数据时才启用按钮?我是否真的需要写出每种情况的组合:(True/True = Enabled, True/False = Disabled, False/True = Disabled, False/False = Disabled)?这是我的错字还是一些愚蠢的逻辑错误?我现在真的不能用公正的眼光看待这个。

0 投票
2 回答
1957 浏览

wpf - 基于 WPF DatePicker 验证使用 MVVM 禁用/启用按钮

我得到了一个使用 IDataErrorInfo 接口处理验证的 ViewModel。这适用于组合框、文本框、复选框等。

DatePicker 似乎根据绑定到“日期时间?”来验证输入本身。ViewModel 中的属性也可以正常工作。

现在我想使用 ViewModel 内部的命令绑定禁用/启用按钮。如果任何控件显示验证错误,则应禁用该按钮。

使用 MVVM-Light 的 RelayCommand 我得到这个工作除了 DatePickers 之外的任何东西,因为他们验证自己。

中继命令代码:


有没有办法让他们的验证状态进入 ViewModel?
我真的很感谢这方面的一些帮助!



在任何人提到它之前:我已经尝试使用 Multidatatrigger 并因此在视图中处理按钮 IsEnabled 属性。它没有用,IsEnabled 是我无法使用数据触发器更改的唯一属性。即使没有任何 CommandBindings。(可能是因为我的公司 Authentication-Framework)

这是我尝试的 DataTrigger 代码:

0 投票
2 回答
2669 浏览

wpf - 如何在多数据触发器中进行比较

我们如何在 MultiDataTrigger 中进行比较?在普通的 DataTrigger 中,我们可以这样说:

但是我们如何在 MultiDataTrigger 条件下进行这样的比较呢?我搜索了,但找不到任何解决方案。请帮忙。谢谢。

0 投票
2 回答
3290 浏览

wpf - (多个)MultiDataTrigger 与转换器的效率

我目前正在分析一些使用广泛使用MultiDataTriggers的样式的 XAML (每种样式有 8-10 个多数据触发器,每个触发器有 4-6 个条件)。在查看此内容时,我正在考虑使用转换器或多值转换器)是否更有效,尤其是在无法调试 MultiDataTriggers 的情况下。

谁能权威地说明 MultiDataTriggers 是如何编译的?我知道条件是 ANDed在一起的,这是否是以捷径为特色的方式编译的?

多个 MultiDataTriggers 呢?它们是否短路以使第一个完全满足导致评估停止?或者如果有几个都满意,他们都评价为最后一个获胜?

0 投票
2 回答
1076 浏览

wpf - 事件和数据触发器可以组合吗?

是否可以MultiTrigger用 anEvent和 a 声明 a DataTrigger

我有一个场景来启动一个在控制的布尔属性设置为时Storyboard给出的场景。Event TriggerTrue

这就是为什么我需要将这两个作为MultiTrigger. 我知道没有直接的方法可以做到这一点,但我正在寻找任何解决方法..

对此有任何想法吗?

0 投票
2 回答
5433 浏览

wpf - WPF 如何从数据模板设置父容器的可见性

我已经为我的 Component 对象创建了一个 DataTemplate。我添加了 DataTrigger 以确定组件是否应该可见。本质上,我们有过滤器,代码检查这些过滤器以确定组件应该是可见的还是折叠的。我遇到的问题是我希望触发器将可见性设置为父容器的“折叠”或“可见”,即 ListBoxItem。该代码有效,但将其设置在 Border 处。

模板开始是这样的:

我正在为我的触发器提供代码,我将在下面解释我尝试过的内容但没有成功。

对于 Setter 属性

我尝试使用绑定来获取列表框,如下所示:

当我尝试运行它时出现此错误,所以我假设我根本不能在那里使用绑定并且需要不同的方法?

0 投票
1 回答
1013 浏览

wpf - Binding to AlternationCount of ItemsControl from ItemTemplate of a nested ItemsControl

I have an ItemsControl nested in the DataTemplate of another ItemsControl. This seemed like the easiest way to display a grid of numbers from a two-dimensional array, which it did very nicely. The problem I have is that I want to change the color a particular number in the grid. I was hoping to trigger off the AlternationIndex of both ItemsControls, so I can identify exactly which number to highlight.

In the DataContext for the parent ItemsControl I have a 2-D array of integers like this:

_grid is initialized to a 20x20 array of numbers.

Here is my XAML for the ItemsControls:

I can easily get an entire column of the numbers to be colored red if I leave the second condition off the MultiDataTrigger, but I can't get the second condition to work. Any thoughts on how I can do this? I can probably do it with a DataGrid or something, but now I'm really interested in how to do this binding...if it is even possible.

UPDATE:

@d.moncada gave me the hint I needed to figure out what I had done wrong. Instead of looking for an ancestor of type ItemsControl, I needed to look for ContentPresenter.

0 投票
2 回答
1810 浏览

c# - WPF基于MultiDataTrigger启用禁用边框不起作用

我在 WPF 中有一个边框,我试图根据视图模型中的两个属性启用或禁用它:ConnectedVisibility 和 OperatingMode。当 connectedvisibility 可见性未设置为“可见”时,此数据触发器会禁用边框。但它不适用于操作模式。对于 0 以外的操作模式,应禁用边框但仍保持启用状态。看起来,OperatingMode 改变它的值根本没有影响。除非程序第一次启动,否则即使我在转换器中放置的断点也不会被命中。绑定看起来不错,因为这些绑定的调试输出中没有显示任何问题。任何帮助表示赞赏。

风格是

样式中使用的转换器是 ->

应用此样式的 XAML 是

它绑定的属性是