如何使用C#代码中的标记扩展?

时间:2010-10-06 12:47:46

标签: c# wpf textblock markup-extensions

假设我有SomeExtension MarkupExtension。有谁知道如何从C#代码将其分配给属性?

例如在XAML中我有:

<TextBlock Text="{l:Translate LocalizedByMarkupExtension}" />

我想使用C#代码执行相同的操作。

1 个答案:

答案 0 :(得分:1)

在您的示例中,您的TranslateExtension需要实现一个带有单个参数的构造函数。所以你只需要将值传递给构造函数,如下所示:

TranslateExtension ext = new TranslateExtension("LocalizedByMarkupExtension");

可以使用关联的TypeConverter或特殊的Xaml值转换器转换参数。但是如果你只是传递字符串,那么上面应该可以工作。

然后你会调用ProvideValue方法来获得结果。