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

时间:2011-06-15 13:05:04

标签: .net wpf binding converter

类似的东西:

 <TextBlock Text="{Binding Text,Converter={StaticResource
  ccc},ConverterParameter=PersonName}"/>

例如,当人名是该类的属性时。

更新

我见过一个解决方案,它告诉我们继承DependencyObject并实现IValueConverter。 我想知道是否有更简单的东西。

2 个答案:

答案 0 :(得分:5)

答案是直截了当的,但不是你想听到的。

您只能在DependencyObject上的DependencyProperty上定位绑定。绑定不会从DO继承,因此您无法绑定转换器参数。

如果您希望将其他状态传递给转换器,则可能必须将所需的对象子类化并添加新属性

答案 1 :(得分:2)

你看过MultiBinding吗?如果您想要将两个属性发送到转换器,例如“Text”和“PersonName”,您可以执行以下操作:

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

这假定“Text”和“PersonNames”是DataContext上的属性。如果不是这种情况,您可能需要更改绑定路径。