Подтвердить что ты не робот

Значение StaticExtension не может быть разрешено

Я столкнулся с некоторыми проблемами с привязкой WPF к статическому свойству. В моем приложении есть класс под названием Globals, который содержит статическое свойство ThisAddIn. Этот объект позволяет мне получить доступ к свойству User, которое в основном является тем, что я хочу использовать в моем Binding. Итак, мой XAML выглядит так:

<TextBlock Text="{Binding Path=User.Name
                   , Source={x:Static Member=s:Globals.ThisAddIn}}" />

Пространство имен s объявлено вверху следующей строкой:

xmlns:s="clr-namespace:ConsoleApplication16.Model"

Я нашел массу различных подходов к тому, как ссылаться на статическое свойство в XAML, но ни один из них не работал, кроме этого, что также кажется наиболее логичным для меня. Некоторые образцы, которые я нашел, не использовали Path или Member.

После некоторого тестирования я нашел правильный способ сделать это, используя "x: Static Member", чтобы определить класс и статическое свойство, которое вы хотите использовать, тогда как Path определяет правильные свойства внутри этого объекта, как обычный привязка.

Хотя это решение компилируется без каких-либо жалоб, появляется XAMLParseException, прямо сообщающее мне, что значение StaticExtension не может быть разрешено для перечисления, статического поля или статического свойства.

4b9b3361

Ответ 1

Обеспечьте Globals.ThisAddIn общедоступным. Вы также можете получить это, если используете файл ресурсов, и в этом случае вам также необходимо убедиться, что модификатор доступа настроен на общедоступный.

Ответ 2

В проекте выходной библиотеки вы должны убедиться, что генератор файлов Resource.resx был изменен как PublicResXFileCodeGenerator, а не ResXFileGodeGenerator по умолчанию.

Заменить следующий с...

Не публичный ресурс

Этот

правильный публичный ресурс