Dynami c локализация с поддержкой привязки - PullRequest
0 голосов
/ 26 апреля 2020

Я реализовал Dynami c Многоязычный с файлами Resx. Проблема в том, что я могу использовать только прямое имя ресурса. Невозможно получить имя ресурсов через привязку

<Button Content="{hc:loc resourceName}"/>

таким образом, нет работа:

<Button Content="{hc:loc {binding resourceName}}"/>

я использовал это класс

ОБНОВЛЕНИЕ:

public class LocExtension : MarkupExtension 
    {
        private readonly DependencyObject _proxy;

        public LocExtension()
        {
            _proxy = new DependencyObject();
        }
        public static readonly DependencyProperty StringNameProperty =
         DependencyProperty.Register("StringName", typeof(string), typeof(LocExtension),
             new PropertyMetadata((default(string)));


        public string StringName
        {
            get { return (string)_proxy.GetValue(StringNameProperty); }
            set { _proxy.SetValue(StringNameProperty, value); }
        }

ошибка: ArgumentException: тип 'LocExtension' должен происходить из DependencyObject .

1 Ответ

0 голосов
/ 26 апреля 2020

«Связывание» может быть установлено только на DependencyProperty из DependencyObject. Подробнее о пользовательских свойствах зависимостей можно узнать в Документах Microsoft .

. Проблема в том, что класс MarkupExtension не является производным от DependencyObject и не реализует интерфейс (вместо Silverlight MarkupExtension, который реализует IMarkupExtension), поэтому нет способа реализовать оба поведения: MarkupExtension и DependencyObject. Таким образом, вы не можете привязать его свойства.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...