以编程方式在Silverlight中使用C#中的值转换器

use*_*662 5 c# silverlight

我有一个C#Silverlight应用程序.在这个应用程序中,我已经定义了一个我在XAML中使用的值转换器.我遇到了一种情况,我需要以编程方式在我的代码后面使用这个值转换器.我的问题是,我该怎么做?在XAML中,我正在使用我的值转换器,如下所示:

<TextBlock x:Name="myTextBlock" Text="{Binding Mode=OneWay, Path=FirstName, Converter={StaticResource myConverter}, ConverterParameter=NotSet}" />
Run Code Online (Sandbox Code Playgroud)

如何在我的代码隐藏中使用此转换器?

谢谢!

Job*_*Joy 12

如果您只想在后面的代码中显式调用转换器,只需像使用其他类一样使用转换器类,并使用适当的参数调用其Convert()方法

YourConverter conv = new YourConverter();
conv.Convert(...)
Run Code Online (Sandbox Code Playgroud)


Jam*_*yle 6

我个人向​​转换器添加了一个静态方法,如下所示:

public static object Convert(object value)
{
    return new MyConverter().Convert(value, null, null, CultureInfo.CurrentCulture);
}
Run Code Online (Sandbox Code Playgroud)

然后您可以在代码中使用它,如下所示:

MyConverter.Convert(valueToConvert);
Run Code Online (Sandbox Code Playgroud)

您甚至可以在返回之前更改返回类型并转换结果以简化使用。