如何使用 C# 代码中的标记扩展?
假设我有 SomeExtension
MarkupExtension。有谁知道如何将其分配给 C# 代码中的属性?
例如,在 XAML 中,我有:
<TextBlock Text="{l:Translate LocalizedByMarkupExtension}" />
我想使用 C# 代码执行相同的操作。
Assume I have SomeExtension
MarkupExtension. Does anyone know how to assign it to a property from C# code?
That is for example in XAML I have:
<TextBlock Text="{l:Translate LocalizedByMarkupExtension}" />
I want to do the same using C# code.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在您的示例中,您的 TranslateExtension 需要实现一个采用单个参数的构造函数。因此,您只需将值传递到构造函数中,如下所示:
可以使用关联的 TypeConverter 或特殊的 Xaml 值转换器来转换参数。但如果您只是传递字符串,那么上面的方法应该可以工作。
然后您将调用 ProvideValue 方法得到结果。
In your example, your TranslateExtension would need to implement a constructor that takes a single parameter. So you'd just need to pass the value into the constructor like so:
The parameter may be converted using an associated TypeConverter or a special Xaml value converter. But if you are simply passing strings, then the above should work.
Then you'd call ProvideValue method to get the result.