问题标签 [ivalueconverter]
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.
wpf - WPF GridViewColumn 值转换器错误
谁能告诉我根据 dbfield 值使您的 GridViewColumn 显示为图像的这两种方法有什么区别。
第一的
第二
第二个工作正常,但第一个是给
在“System.Windows.Markup.StaticResourceHolder”上提供值引发了异常。 内部异常消息是找不到名为“local:ActionIdConverter”的资源。资源名称区分大小写。
但相同的转换器正在第二个工作
知道我在第一种方法中缺少什么吗?
谢谢和问候, 阿德南
wpf - 更新具有无限可能条件的 wpf 样式
我有一个DataGrid
代表我正在执行 ping 的主机的行和一个名为的列Lost
,它代表丢失的 ICMP 数据包,随着时间的推移价值增加。我把整个INotifyPropertyChanged
事情都搞砸了,我看到价值增加了。我想要做的是编写一个相对于列的值Style
逐渐将行的背景颜色从白色更改为深红色的内容。Lost
如果可能的话,我想编写一个Trigger
或DataTrigger
设置为 a 的 setter 值来ValueConverter
计算所需的颜色,但到目前为止,我一直未能成功编写一种样式,该样式将在每次丢失单元格的值更改时更新。当我加载新的数据上下文并切换回来(仅用于测试)时,我只会看到颜色的差异。
这是我尝试过的:
我看不到这与 a 一起工作,DataTrigger
因为无论如何您都必须指定一个值,并且这些值是无限的(或者我猜是 Int32.MaxValue),真的。尽管我也尝试为 value 属性指定 a ValueConverter
,但这也不起作用。
顺便说一句,如果可能的话,我想尽量避免代码隐藏。
编辑: 瑞克:我试过做类似的事情:
我想我理解需要Trigger
实际绑定到将要发生变化的东西(在这种情况下,我觉得我也被迫使用 aValueConverter
来获取列的值,有没有更直接的方法?),但即使我这样做了,我将什么指定为DataTrigger
's 值?
编辑:
所以就我而言,我继续执行以下操作(目前这只会修改TextBlock
's 背景):
这对我来说似乎是正确的,但由于某种原因只能工作一次。我在定义上添加了一个单独的TargetUpdated
事件处理程序,TextBlock
以查看是否确实在每次更改时都调用了该事件,并且确实如此。我的EventTrigger
. 可能与Storyboard
. 无论如何,对于如此简单的事情来说,这一切似乎都非常冗长,所以我继续使用代码隐藏路线。
c# - IValue 转换器:ConvertBack - 字符串到对象
我可以将工作从对象转换为文本框。但是我在转换时有点茫然。非常感谢任何线索或帮助。
wpf - ItemsControl 上的 WPF MVVM 单选按钮
我之前已经将枚举绑定到单选按钮,并且我大致了解它是如何工作的。我使用了这个问题的替代实现:如何将 RadioButtons 绑定到枚举?
我想生成一个自定义类型的运行时枚举集,而不是枚举,并将它们呈现为一组单选按钮。我已经得到了一个视图,它与一个运行时枚举的集合一起工作ListView
,绑定到ItemsSource
andSelectedItem
属性,所以我ViewModel
的连接正确。现在我正在尝试使用单选按钮从 a 切换ListView
到 a 。ItemsControl
据我所知,这是:
InstanceToBooleanConverter
EnumToBooleanConverter
具有与其他问题相同的实现。这似乎是正确的,因为它似乎只是调用了该Equals
方法:
我现在遇到的问题是我无法弄清楚如何将运行时值作为ConverterParameter
. 当我尝试(使用上面的代码)时,我收到此错误:
不能在“Binding”类型的“ConverterParameter”属性上设置“Binding”。只能在 DependencyObject 的 DependencyProperty 上设置“绑定”。
有没有办法绑定到项目实例,并将其传递给IValueConverter
?
wpf - 如何在静态资源上设置依赖属性?
我试图解决我无法为ConverterParameter
. 请参阅我的另一个问题,了解为什么我需要将动态值绑定到ConverterParameter
- 我不喜欢当前发布的解决方案,因为它们都需要我认为应该对我的视图模型进行不必要的更改。
为了尝试解决这个问题,我创建了一个自定义转换器,并在该转换器上公开了一个依赖属性:
有没有办法在我的 XAML 中使用绑定(或样式设置器或其他疯狂的方法)来设置此值?
到目前为止,我看到的示例仅绑定到静态资源。
编辑:
我收到一些反馈,说我发布的 XAML 只有一个转换器实例。
我可以通过将资源置于我的控制中来解决此问题:
所以这个问题不会因为必须共享转换器的实例而被阻止:)
c# - 是否可以在 Silverlight 中为静态资源提供类型转换器?
我正在尝试设计一个LineSeries
图表,该图表DateTime
在其独立轴上有对象,在其从属轴上有整数值。我想在用户将鼠标悬停在 a 上时显示工具提示文本DataPoint
,同时显示其独立值和依赖值,但我需要格式化DateTime
对象以显示我想要的格式。
我发现这个示例使用了ContentStringFormat
a的属性ContentControl
,但经过一番挖掘后,我了解到该属性在 Silverlight 中不可用,仅在 WPF 上可用。所以我找到了另一个使用转换器的示例,但我不能将转换器定义放在ResourseDictionary
a 上UserControl
,因为 aResourceDictionary
没有属性Resources
.. :(
我不知道我的解释是否正确,但我的问题是.. 是否可以为 Silverlight 中的静态资源提供类型转换器?
编辑-XAML
wpf - 让“ConvertBack(...)”在 WPF ComboBox 选择更改时触发
我有一个绑定到对象集合的属性ComboBox
。Items
我还有SelectedItem
绑定到整个集合的属性,ValueConverter
旨在检查集合中的元素并返回要选择的 1 个项目。这部分有效。
不起作用的是当用户在 ComboBox 上进行选择更改时,不会调用的ConvertBack(...)
方法。ValueConverter
我需要ConvertBack(...)
调用,因为我需要接受用户的选择,重新检查集合,并适当地编辑旧的选定项目和新选定的项目。
我知道这种方法很尴尬,但就是这样。以下是相关代码:
组合框:
值转换器:
那么为什么从来没有ConvertBack(...)
被调用呢?这只是我误解的事情ComboBox
吗?SelectedItem
我已经使用, SelectedValue
,尝试过这种方法SelectedIndex
,并尝试过使用UpdateSourceTrigger
各种绑定模式、DataTriggers,但似乎永远无法ConvertBack(...)
被调用。使用SelectionChanged
事件是唯一的选择吗?如果是这样,为什么?
c# - WPF ValueConverter - 不可转换值的标准返回
在过去的一年左右的时间里,我看到了许多不同的价值转换器,用于许多不同的目的,来自许多不同的作者。我想到的一件事是它们返回的“默认”值的广泛差异。例如;
所以我的问题是,是否有一种“标准”方式来指示输入值无法转换?
wpf - 如何处理值转换器中的异常,以便显示自定义错误消息
我有一个文本框,它绑定到具有 Timespan 类型的属性的类,并编写了一个值转换器将字符串转换为 TimeSpan。
如果在文本框中输入了非数字,我希望显示自定义错误消息(而不是默认的“输入字符串格式错误”)。
转换器代码为:
我在 XAML 绑定中设置了“ValidatesOnExceptions=True”。
但是,我遇到了以下 MSDN 文章,它解释了为什么上述方法不起作用:
“数据绑定引擎不会捕获用户提供的转换器引发的异常。任何由 Convert 方法引发的异常,或由 Convert 方法调用的方法引发的任何未捕获的异常,都被视为运行时错误”
我已经读到'ValidatesOnExceptions 确实在 TypeConverters 中捕获了异常,所以我的具体问题是:
- 你什么时候会在 ValueConverter 上使用 TypeConverter
- 假设 TypeConverter 不是上述问题的答案,我如何在 UI 中显示我的自定义错误消息
listbox - WP7 ListBox 中的图像闪烁
我正在尝试在 ListBox 中显示嵌入在我的程序集中的图像列表。我可以使用转换器显示图像,但不是加载,然后保持静止,而是不断地从程序集中重新加载,导致它们闪烁。我正在使用相同的转换器在我的应用程序周围的其他各个地方加载图标,但这个问题没有发生 - 它似乎是由 lisbox 以某种方式引起的。我尝试删除 VisualStates 并为转换器返回的位图图像切换 CreateOption,但我得到了相同的结果。我很确定这不会发生在 WP7.0 上,只有 7.1。
风格是:
有问题的列表框:
转换器: