使用参数在xaml中定义转换器

时间:2014-10-15 13:53:17

标签: .net xaml converter

在我的xaml页面的开头,我定义了这样的转换器:

<Grid>
  <Grid.Resources>
    <l:MyMagicConverter x:Key="magicConverter"/>
  </Grid.Resources>

有没有办法为转换器添加一些参数来定义?像DependencyProperty,或者更简单的东西?像这样:

    <l:MyMagicConverter x:Key="magicConverter" MyParameter="{Binding MyValue}"/>

我在使用时知道转换器参数,但我也想在定义中添加一些内容。

1 个答案:

答案 0 :(得分:2)

可以向转换器添加属性,然后在Xaml中访问它们。

public class RadioButtonToIntConverter : IValueConverter
{
    public string ABC { get; set; } 

的Xaml:

<reportConverters:RadioButtonToIntConverter x:Key="RadioButtonToIntConverter" 
                                            ABC="def" />

现在你绑定它,对于静态资源可能是个问题。


顺便说一句,如果一个人不想直接在xaml中实例化转换器,我提供了一种在没有xaml实例化的情况下自动挂接转换器的方法。

Xaml: Call Binding Converter Without Defining StaticResource in Xaml Thanks to Markup Derived Base Class in C#

我建议将其作为一种实例化目标转换器的方法,该目标转换器具有您可能想要使用的“预烘焙”属性。