如何传递IValueConverter参数?

19
在XAML中,<Grid x:Name="MainGrid3">,这里我想将MainGrid3作为IValueConverter的参数传递。我该怎么做?输入图像描述
1个回答

30

你的绑定中含有 ConverterParameter,你可以在其中使用另一个带有你的网格ElementName的绑定。

<Grid Name="MainGrid3"></Grid>
<TextBlock Text="{Binding SomeBinding, Converter={StaticResource SomeConverter}, 
           ConverterParameter={Binding ElementName=MainGrid3}}"></TextBlock>

编辑: 好的,显然我是错了,你不能在ConverterParameter中使用绑定,因为它不是依赖属性。一个可行的解决方案是使用 x:Reference,像这样:

<Grid Name="MainGrid3"></Grid>
<TextBlock Text="{Binding SomeBinding, Converter={StaticResource SomeConverter}, 
           ConverterParameter={x:Reference Name=MainGrid3}}"></TextBlock>

4
“where you can use another binding with ElementName”的翻译是不正确的,因为Binding的ConverterParameter属性不是一个依赖属性,所以不能进行绑定。参考链接:https://dev59.com/92Up5IYBdhLWcg3wY21V#15309844。 - Clemens

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接