如何传递 IValueConverter 参数?

Posted

技术标签:

【中文标题】如何传递 IValueConverter 参数?【英文标题】:How to Pass IValueConverter Parameter? 【发布时间】:2016-09-24 08:32:10 【问题描述】:

在XAML中,<Grid x:Name="MainGrid3">,这里我想将MainGrid3作为IValueConverter的参数传递。我该怎么做?

【问题讨论】:

【参考方案1】:

您的绑定中有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>

【讨论】:

“您可以在其中使用另一个与 ElementName 的绑定”。不正确,因为 Binding 的 ConverterParameter 属性不是依赖属性,因此无法绑定。见这里:***.com/a/15309844/1136211

以上是关于如何传递 IValueConverter 参数?的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin 形式:IValueConverter 在 Convert 方法中接收空值

如何使用 IValueConverter 接口在 Windows 商店应用程序中制作货币转换器?

如何在XAML中直接用IValueConverter绑定ResourceDictionary的值?

在C语言中参数是如何传递的?

C ++ 11 lambda函数-如何传递参数

C语言 -- 如何传递数组参数