WPF, локализация: переоценка контрольных значений - PullRequest
0 голосов
/ 06 февраля 2011

Я провожу небольшое исследование методов локализации в WPF.Я слышал об этой идее с расширением разметки:

<Label Content="{local:Translate {-- label ID here --}}" />

Мне очень нравится это решение: оно чрезвычайно просто в реализации и кажется очень гибкимУ меня есть одна проблема, однако.Предположим, что пользователь меняет локаль во время выполнения.Как обеспечить повторную оценку локализованных свойств в соответствии с новым языком?

1 Ответ

0 голосов
/ 06 февраля 2011

Вам необходимо вызвать DependencyObject.InvalidateProperty .Имейте в виду, что если бы вы привязывались к объекту, реализующему INotifyPropertyChanged, они были бы переоценены путем изменения базовых данных.

DependencyObject.InvalidateProperty можно вызвать для данного DependencyProperty, например Label.Content.

Label label = new Label();
label.InvalidateProperty(ContentProperty);

Это должно быть сделано для переменных свойств, которые требуют переоценки.Существует подробная статья о MSDN , посвященная локализации в WPF, а также различные альтернативы, которые следует изучить.

...