问题标签 [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 回答
7367 浏览

wpf - 我的数据触发器绑定有什么问题?

我创建了一个附加属性来扩展具有附加状态的 Button 类:

ControlTemplate然后我想像这样访问这个值DataTrigger

但我得到这个错误:

System.Windows.Data 错误:4:找不到与引用'RelativeSource FindAncestor,AncestorType='System.Windows.Controls.Button',AncestorLevel='1''的绑定源。绑定表达式:路径=(0);数据项=空;目标元素是 'Button' (Name=''); 目标属性是“NoTarget”(类型“对象”)

中的绑定表达式DataTrigger似乎不正确。我究竟做错了什么?

0 投票
1 回答
3876 浏览

wpf - 如何从 DataTemplate 确定当前 ListBox 项的索引?

我有一个列表框。现在我想以这样的方式编写一个 DataTemplate,第一个项目将具有红色背景和其他项目的白色背景。我想我需要编写一个 DataTrigger,但我不知道如何确定 DataTemplate 是否应用于第一项。

0 投票
1 回答
300 浏览

wpf - DataTrigger 无法按预期工作

ComboBox绑定了一个名为 的 ViewModel 属性Property

Property是一个类型描述符。

当用户更改 中的值时ComboBoxProperty会更新。

在 UI 上,我想隐藏或显示不同的控件:文本框、组合框、日期选择器等。

问题是,DataTrigger它没有按预期工作。

0 投票
1 回答
5138 浏览

wpf - 简单的 WPF IValueConverter 和 DataTrigger 不能一起工作

我在使用带有数据触发器的值转换器时遇到了问题。在我的一些代码中,似乎DataTrigger'sPath被应用于根元素,而不是样式适用的元素。

我创建了一个简单的测试用例,但我不了解它的行为。我希望'Button变红或变蓝取决于哪个值被馈送到DataTrigger' 的转换器,但 'Button根本没有受到影响!

还有一个简单的转换器:

为什么不Convert叫?为什么不Button变成红色或蓝色?

0 投票
1 回答
3034 浏览

wpf - XAML 中的 DataTrigger / 样式快速

我有一个这样定义的椭圆

我也有两种样式设置,像这样

现在,当第一次绘制椭圆时,根据 RedGradientBrush,它是红色的。当绑定值(已选择)为真时,我想使椭圆变为绿色,因此我添加了一个样式来执行此操作

现在,当 Selected 为 True 时,只有 StrokeThickness 改变,没有别的?有人可以帮忙吗?

谢谢

0 投票
3 回答
3859 浏览

silverlight - 在 Silverlight 中将 FontWeight 绑定到布尔值

Silverlight 没有 DataTriggers,所以在这种情况下......有条件地将项目的字体粗细设置为布尔值的最佳方法是什么?

例如...在 Silverlight 中无法执行以下操作。

谢谢!

0 投票
1 回答
430 浏览

wpf - 数据更改时如何更改 ListView 中的单元格背景?

我有 ListView 与 ObservableCollection 上的绑定已实现 INotifyPropertyChanged。当用户打开窗口时,将显示数据,但我想更改同时更改数据的单元格的背景...

我一直在尝试使用数据触发器,但它们只能在某些值上触发。我想在值变化时触发,无论值是什么。

谢谢

0 投票
1 回答
5874 浏览

wpf - WPF DataTrigger - 设置 ListBoxItem IsSelected

我的多选 ListBox 中的 ListBoxItems 上有以下数据触发器

IsEnabled 设置得很好,但 IsSelected 没有设置。我该如何解决?

我尝试取出 IsEnabled 以查看它是否与 IsSelected 冲突,但该项目在不应该被选中时仍保持选中状态。

重申一下,我可以告诉绑定和转换器工作正常,因为 IsEnabled 工作正常。但由于某种原因 IsSelected 不会取消设置。


编辑:我突然想到我可能不希望它像 IsEnabled 那样工作。因为当此触发器评估为 false 时,该项目将重新启用。我不希望仅仅因为此触发器不再正确而选择以前未选择的行。

有任何想法吗?基本上我不希望选择任何禁用的行。


编辑2:

我尝试添加一个普通触发器,希望它会链接数据触发器,但这也不起作用。

0 投票
1 回答
2539 浏览

wpf - MVVM 模式的动画

使用 MVVM 模式时触发动画的最佳方式是什么?更具体地说,我有一个包含多个字段的表单。当用户单击 saveButton时,我想显示一个动画。我已经能够通过公开属性ShowMessage并将其设置为 True 并DataTrigger获取该值并启动动画来实现这一点。但是,虽然动画仍处于活动状态,但我想将表单重置为干净状态。到目前为止,我已经通过订阅事件并在该Complete事件上Storyboard重置视图模型的状态来完成重置。

理想情况下,我希望能够以某种方式从视图模型触发动画(因为保存将是异步操作)并让动画运行完成。我现在的方式不起作用,因为一旦我更改ShowMessage属性的值(在重置时),动画就会停止并且不会运行完成。

有没有人有更好的解决方案?

谢谢!

0 投票
1 回答
1156 浏览

c# - WPF Datagrid不尊重项目属性值的变化

我的问题在这里:我有一些课

和组件的集合,在另一个类中声明:

此组件列表显示在 WPF DataGrid 中。我的想法:运行服务的绿色背景色,红色 - 停止。工作正常,但仅在开始时。计时器调用 CheckServices(),如果返回值为 True,我想重新渲染我的网格,尊重新的服务状态。这是 XAML:

我应该调用任何显式方法来使 DataGrid 无效吗?我尝试过使用 InvalidateProperty、InvalidateVisual、GetBindingExpression(ItemContainerStyleProperty).UpdateTarget(),但没有任何效果。任何人都可以帮忙吗?