如何将非硬编码的内容传递给转换器参数

发布于 2024-11-15 16:31:03 字数 270 浏览 1 评论 0原文

例如:

 <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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

新雨望断虹 2024-11-22 16:31:03

答案很简单,但不是你想听到的。

您只能将绑定定位到 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

梨涡少年 2024-11-22 16:31:03

您研究过多重绑定吗?如果您希望将两个属性发送到转换器,例如“Text”和“PersonName”,您可以执行以下操作:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding Converter="{StaticResource ccc}">
      <Binding Path="Text"/>
      <Binding Path="PersonName"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

这里假设“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:

<TextBlock>
  <TextBlock.Text>
    <MultiBinding Converter="{StaticResource ccc}">
      <Binding Path="Text"/>
      <Binding Path="PersonName"/>
    </MultiBinding>
  </TextBlock.Text>
</TextBlock>

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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文