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

wpf - 如何在 WPF 中声明具有 Itemsource 作为枚举值的组合框 itemTemplate?

我有一个枚举让我们说

我已将此 Enum 绑定到 XAML 中的组合框。

在定义一个组合框时,我定义了一个组合框的 ItemTemplate 来获取两个 UI 元素:

  1. 显示枚举值的文本块(描述)
  2. 图片

我在 XAML 中做了很多。

我想知道在哪里可以指定对应于组合框中每个枚举值项的图像?这可以通过数据触发吗?

如果有人有这种情况的 XAML,我真的很感激。

提前谢谢了

0 投票
1 回答
991 浏览

wpf - 组合框选择更改中断 DataTrigger

我正在尝试从样式触发器中设置组合框的选定值。只要我们不手动更改组合框中的任何值,它就可以工作。但是在手动更改选择后它完全停止工作。我该如何解决这个问题。示例附上代码。请帮忙

0 投票
1 回答
3713 浏览

wpf - 根据网格的列宽更改矩形填充

基本上我想按照标题所说的那样做,如果列宽是 0.50,那么矩形应该是红色,如果是 0.75,那么它应该是琥珀色,如果它是 1,那么它应该是绿色。

我以为我可以使用 DataTriggers 来实现这一点,但由于某种原因,我收到“对象引用未设置为对象的实例”错误,这是我的代码,我在这里遗漏了什么吗?

仅供参考,宽度属性将通过 timer_tick 事件在后端更改。

0 投票
1 回答
6742 浏览

c# - WPF 工具包 DataGridCell 样式 DataTrigger

如果 DataGrid 中的值已更新,我正在尝试将单元格的颜色更改为黄色。

我的 XAML:

网格绑定到数组列表(显示类似于 excel 的值表)。数组中的每个值都是一个包含 IsDirty 依赖属性的自定义对象。IsDirty 属性在值更改时设置。

当我运行这个:

  • 更改第 1 列中的值 = 整行变黄
  • 更改任何其他列中的值 = 没有任何反应

无论在哪个列中,我都只希望更改后的单元格变为黄色。您看到我的 XAML 有什么问题吗?

0 投票
1 回答
3445 浏览

wpf - WPF 触发器/样式覆盖另一个

我有一个ListView这样ItemContainerStyle定义的:

然后在 中baseListViewStyle,我定义了一些基本样式以应用于我ListView的 s,包括Style触发器:

Trigger当鼠标悬停在该行上时,此处突出显示该行。好的。

我也有DataTrigger一个ListViewItem

如果测试为真,则播放一个漂亮的小淡入淡出动画。这一切都有效,除非我将鼠标移到“测试为真”的行上,动画停止并显示鼠标悬停样式。

有什么想法可以覆盖我的风格DataTrigger吗?

TIA

更新:

SomeFunkyAnimation动画背景颜色。它的 xaml 在这里:

MouseOver触发器定义在baseListViewStyle. 中DataTrigger定义ItemContStyle

我尝试删除MouseOver样式触发器,但这不起作用,因为我相信它已经定义Listview了默认MouseOver样式,因此它会覆盖我的DataTrigger动画。

0 投票
1 回答
719 浏览

c# - 将控件的依赖属性提供给控件中的转换器?

我有两个对象,文化和翻译,它们都不复杂。Culture 就像一个简单的 CultureInfo,但有一个额外的字段。文化可能不会经常改变,而且一开始也不会有很多。但是,会有很多 Translations,每个 Translations 都有一个 CultureID 属性。每个翻译都有一个 TranslationID,以便您可以将翻译链接在一起。数据看起来像这样:

TranslationID、 CultureID、文本;
1、 ,你好;
1, es , 你好;
2、 ,再见;
2、 es,再见;

我正在尝试构建一个控件,我可以在其中绑定文化列表和翻译列表。对于每个 TranslationID,可能不是每个 Culture 都有一个 Translation。所以我可能有英文、西班牙文、德文和中文作为我的文化,但对于“你好吗”,我可能只有英文和德文的翻译。

相同 TranslationID 的翻译列表将绑定到控件。在控件内部,每种文化只有一个或零个翻译。我有一个扩展器元素的 xaml 列表框。每个 Expander 应该有一个 Culture,其中 Culture.Name 属性作为标题。每个扩展器的内容是一个包含该文化翻译的文本框,如果翻译存在的话。如果它不存在,则 TextBox 为空白。到目前为止,我已经完成了这么多工作。

在控件之外,可以选择其中一种文化来编辑翻译,即使在控件内可以编辑文化的任何翻译。如果发生这种情况就好了。当前编辑文化应该做的是使包含该文化的控件中的扩展器成为打开控件时唯一扩展的控件(控件将在弹出窗口中)。不应展开控件中列表框中的所有其他扩展器。我在控件中创建了一个依赖属性,它采用当前的编辑文化,称为 CurrentTranslationCulture。

这就是我的问题所在。我尝试使用 DataTrigger 和自定义转换器将 Culture 与 CurrentTranslationCulture 进行比较。但是,由于转换器是它自己的类,它无权访问 CurrentTranslationCulture。我尝试将它作为 ConverterParameter 传递,但我无法将它绑定到 DataTrigger 绑定中的 ConverterParamater 参数。我什至不知道这是否是我应该采取的方法。有谁知道这个问题的解决方案,或者甚至是更好的解决方案?提前致谢。

代码:下面的代码不能完全工作。如果您取出 ConverterParameter,它会起作用,但我的所有扩展器都会被关闭。在 ConverterParamerter 内部,ElementName=labelTranslationEditor 是我提供给我的控件以尝试访问它的名称。

0 投票
2 回答
1059 浏览

wpf - 具有值绑定的 DataTrigger

为什么这不起作用?

0 投票
2 回答
8921 浏览

c# - 当属性和数据值为真时 WPF 触发

Style当属性和数据值为真时,我需要能够更改控件的。例如,我绑定的数据有一个IsDirty属性。我想更改控件的背景颜色,当IsDirty它为真并且控件被选中时。我找到了MultiTriggerMultiDataTrigger类......但在这种情况下,我需要以某种方式触发数据和属性。我怎样才能做到这一点?

另一个注意事项:我需要能够在不是 XAML 的代码中执行此操作。

0 投票
1 回答
4499 浏览

wpf - 在触发器中更改 TextBlock.Text 不起作用

在我看来,我有下一个代码:

但是将 TextBlock.Text 设置为字符串不起作用。TextBlock.FontStyle 更改为斜体,因此整个触发器可以正常工作。怎么了?

0 投票
1 回答
5175 浏览

wpf - ControlTemplate 中的 DataTrigger 不更新

我有一个绑定到 CustomerViewModel 对象列表的 ListBox,每个都有两个依赖属性:
-名称(字符串)
-描述(字符串)
-IsVisible(布尔)

(IsVisible 属性默认为 True,可通过 CustomerViewModel 上的 ToggleVisibility 命令反转)

我想在边框控件的右侧显示名称和描述,即当 IsVisible 属性为 True 时具有透明背景,当为 False 时具有绿色背景。

我的问题是下面代码的 DataTrigger 部分不能按我想要的方式工作,因为当 IsVisible 更改时不会触发 Setter 部分。

我究竟做错了什么?

这是我的代码:

更新:
正如 Goblin 所指出的,DataTrigger 确实缺少 TargetName="visibilityColumn"。

然而 - “真正的”问题是,这一行:

可检查的 MenuItem 在 IsChecked 属性上有一个 TwoWay 绑定模式,所以我实际上两次反转 IsVisiblity - 通过数据绑定和通过 ToggleVisibility 命令...哎呀 :)