我正在使用标记扩展在 WPF 应用程序中加载国际化字符串,如下所示:
<Button Content="{Translate MyText}"/>
我的标记扩展名为“TranslateExtension”,它从数据库中搜索键“MyText”的值。它在
ProvideValue(IServiceProvider serviceProvider)
返回正确字符串的方法。一切正常。
我的问题是,ProvideValue-Method 永远不会被再次调用,并且当语言发生更改时,无法从数据库中提取新字符串。我现在需要一种方法来使返回值“动态”,使按钮重新加载它的 xaml 并重新使用标记扩展,无论它是通过更改语言时抛出的事件还是其他什么。如何让系统再次调用 ProvideValue-Method?我尝试了 InvalidateVisual() InvalidateArrange() InvalidateMeasure() UpdateLayout() 之类的...
我希望我说清楚了。请随时询问您认为您能够提供想法或解决方案的更多信息。谢谢