问题标签 [datatrigger]

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 回答
3297 浏览

wpf - WPF 数据触发器和更改控件样式

我正在使用我的自定义验证引擎来验证我的 ViewModel 属性。我被困在最后一步。我想更改TextBox验证失败时的背景颜色。因此,我实现DataTrigger了 s 并将其绑定到 HasError 属性。HasError 是一个普通的 CLR 属性。

这是代码:

问题是它只会在this.DataContext分配给视图模型时触发一次。所以,我想也许我可以使用依赖属性而不是普通属性,但这也没有成功。

有任何想法吗?

更新:

似乎DataTriggers 仅在挂钩到 CLR 属性而不是依赖项属性时才会触发。

更新 2:

如果只有以下代码有效:

更新 3 工作:

正如答案所提到的,我不得不触发这个INotifyPropertyChanged事件。

公共 ObservableCollection 错误 { 获取 { 返回 (ObservableCollection)GetValue(ErrorsProperty); } set { SetValue(ErrorsProperty, value);

0 投票
1 回答
2658 浏览

wpf - MultiDataTrigger 绑定到集合和集合中的属性

我有以下 XAML:

错误是一个ObservableCollection<BrokenRule>. BrokenRule 有一个名为 HasError 的属性。现在,我想绑定到该 HasError 属性,但不确定如何在 XAML 中引用它。

0 投票
1 回答
564 浏览

wpf - 如何使用 MultiDataTrigger 在 WPF 中的 Style.Triggers 中检查单个条件是否为真?

我的 UserControl 中有三个网格,其中一个控件一次显示。在最后一列中,我需要使用 Style 来检查数据并应用 ForeGround 颜色。我可以在 3 个网格中的每个控件上使用DataTriggers. 但我想要一个可以在任何地方使用的 Resource 中的具体样式。我试过MultiDataTrigger了,但它没有达到我的目的,因为它检查了 2 个或更多条件是否为真,MultiDataTrigger.Conditions而我需要检查单个控件中的数据。是否有任何替代解决方案来实现这一目标?

0 投票
1 回答
1508 浏览

wpf - 根据组合框中的 SelectedValue 更改 UserControl 背景

我尝试做的事情:我在背景中有一个个人资料列表,可与我的组合框一起使用。触发器是根据人的性别改变背景(bool Role.IsFemale)。当我在代码中处理 SelectionChangedEvent 时,我可以看到 Selectedvalue 是真还是假。我现在可以直接更改背景或更改用户控件本身可以侦听并在触发时更改背景的dependencyProperty。但是,我尝试只使用 xaml 来实现这一点,但是当我使用下面的代码时没有任何反应......

0 投票
3 回答
2066 浏览

c# - 如何以声明方式从 ComboBox 的内容中设置 RadioButton 的 IsChecked 属性?

我有一个组合框,其中包含以下项目:a1、a2、a3、a4,并且我有两个 RadioButtons r1 和 r2。这就是我想要完成的:如果用户从组合框中选择项目 a2,则 r1 的 IsChecked 属性应设置为 true。如果用户从组合框中选择项目 a3 或 a4,则 r2 的 IsChecked 属性应设置为 true。我想以声明方式完成此操作;即不使用转换器。这是我的代码,提前致谢:

0 投票
1 回答
869 浏览

wpf - 如何对 ItemsControl (WPF) 中显示的项目进行动画过滤

我目前正在创建一个主要只是ItemsControl显示一些项目的控件。此外,我有一些控件允许用户过滤其中的项目ItemsControl

我要做的是让用户更好地看到应用过滤器时删除了哪些项目。

所以我所做的不是真正过滤,而是在用于每个项目的 VM 上ICollectionView引入了一个新属性。IsVisible然后我添加了一个ScaleTransformas LayoutTransformDataTemplate我添加了一个DataTrigger动画变换:

如果用户现在过滤一切正常。但是我遇到的问题是,如果列表中的任何更改(添加新项目,...)Storyboard再次应用,尽管用户确实过滤了任何内容。

其原因是,在更改列表后,DataTemplate将重新创建 ScaleY 为“1”,然后DataTrigger再次应用 ,并再次应用记分牌。

在这种情况下,我希望没有动画发生。

任何想法如何做到这一点?蒂亚·马丁

0 投票
1 回答
19813 浏览

.net - 在 DataTrigger 条件下使用绑定

假设我有以下简单的类:

现在我有一个带有 PersonH​​older 类实例的网DataContext格,并且在网格中我有一个StackPanel绑定到CurrentPersonof PersonHolder- 显示它的数据:

所以 - 对于这个问题:当有一个匹配的(是的,非常有用,但这只是一个非常简化的例子..)时,我怎样才能给StackPanel绿色背景。我的想法是这是一个使用触发器的东西,但是我可以在我的触发器条件值中使用绑定吗?如果是这样,我可以做这样的事情:CurrentPersonIdActiveIdPersonHolder

但这不起作用。我该如何解决这个问题?

0 投票
2 回答
13210 浏览

.net - 为 StackPanel 定义 DataTrigger

如何DataTrigger为 a 定义 a StackPanel?它确实有一个Trigger属性,但是在这里定义一个触发器会在启动应用程序时在 Initialize 上产生以下错误:

对象初始化失败 (ISupportInitialize.EndInit)。触发器集合成员必须是 EventTrigger 类型。……

这是从以下简单给出的DataTrigger

这是我第Trigger一次,所以我做错了什么?我应该在Trigger其他地方定义吗?

0 投票
3 回答
1342 浏览

wpf - 在 WPF 中的 DataTrigger 中将数据绑定到 XML

在 WPF 应用程序中,我已将 DataTemplate 正确绑定到 XML 节点,如下所示:

在我的应用程序中,我有一个带有答案的 TextBlock。起初,我希望它不可见,但是当 XML 文件中的正确属性更改为“true”时,它必须变得可见。

我的 DataTemplate 连接正确,因为其他一切正常。例如,如果我更改 XML 文件中的 answer 属性(仅用于测试),它会在我的 WPF 视图中更改。但我在能见度方面遇到了麻烦。这是我的 XAML:

我猜 DataTrigger 中的数据绑定工作不正常。有人有线索吗?

0 投票
1 回答
1498 浏览

wpf - Expression Blend 中的数据触发器

我有一个列表框,显示使用数据模板格式化的发货项目(自定义类)(见下文)。模板中有一个边框元素(我称它为 Gem),它显示哪个项目处于活动状态(未选择),哪个项目将添加产品。

模板.png

装运类 (Active) 中有一个布尔属性,该属性在 Gem 元素的单击事件处理程序中设置。通常情况下,Gem 应该像第一张图片一样是暗的,然后在激活时亮起。

我在 DataTemplate 中设置了一个 DataTrigger 来处理 Gem 颜色的变化。

然而,由于某种原因,当应用程序加载时,所有的 gem 都会亮起,表明包都处于活动状态。

**由于 stackOverflow 的声誉限制,我还不能发布更多超链接。下图与上图位于同一域。

/ExternalImages/ActiveItems.PNG

我检查了所有项目实际上都是 Active = False,但宝石总是亮着的。此外,当我运行 click 事件时,我会遍历 Package 集合并设置所有 Active = False,然后将发件人的 TemplatedParent 设置为活动状态。

宝石不会回到未点亮的状态(它们一开始就没有)。它们只保持点亮状态。有任何想法吗?

科里

--奇怪的是,只出现在第一次编辑的代码框中......现在已修复。