如何将非硬编码的内容传递给转换器参数
例如:
<TextBlock Text="{Binding Text,Converter={StaticResource
ccc},ConverterParameter=PersonName}"/>
当人名是类的属性时。
更新:
我看到了一个解决方案,它告诉您从 DependencyObject 继承并实现 IValueConverter。 我想知道是否有更简单的事情。
Something like:
<TextBlock Text="{Binding Text,Converter={StaticResource
ccc},ConverterParameter=PersonName}"/>
when Person name is Property of the class for example.
Update:
I've seen a solution that tells to inherit from DependencyObject and to implement IValueConverter.
I want to know if there is something simpler.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
答案很简单,但不是你想听到的。
您只能将绑定定位到 DependencyObject 上的 DependencyProperty。绑定不是从 DO 继承的,因此您无法绑定转换器参数。
如果您希望将其他状态传递到转换器中,您可能必须对所需对象进行子类化并添加新属性
The answer is straight-forward, but not what you want to hear.
You can only target a binding at DependencyProperty on a DependencyObject. Binding does not inherit from DO, so you can't binding the converter parameter.
If you want other state passed into a converter, you may have to subclass the desired obect and add new properties
您研究过多重绑定吗?如果您希望将两个属性发送到转换器,例如“Text”和“PersonName”,您可以执行以下操作:
这里假设“Text”和“PersonNames”是 DataContext 上的属性。如果不是这种情况,您可能需要更改绑定路径。
Have you looked into MultiBinding? If you want two properties sent to the converter, like "Text" and "PersonName" you may be able to do something like this:
This assumes that "Text" and "PersonNames" are properties on the DataContext. You may need to change the binding paths if that's not the case.