Как создать привязку к объекту, определённому в другом пространстве имён?

186
08 ноября 2021, 20:10

В ходе разработки графического интерфейса на WPF, использующего одну библиотеку классов, столкнулся с проблемой: не понимаю как привязать объект Configuration как статический ресурс к элементам графического интерфейса.
Написал:

<Window.Resources>
    <Configuration x:Key="config"/>
</Window.Resources>

Но такое не компилируется, хотя Configuration прекрасно виден из кода на C#, а вот в разметке - нет.
Попытался описать пространство имён xmlns:lib по аналогии с xmlns:local

<Window x:Class="GUI.MainWindow"
    <…>
    xmlns:local="clr-namespace:GUI"
    xmlns:lib="clr-namespace:ClassLibrary">

Не смотря на это, высвечивается две ошибки:

  • XDG0008: The name "Configuration" does not exist in the namespace "clr-namespace:ClassLibrary".

  • XLS0414: The type 'lib:Configuration' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built.

Как это исправить?

Answer 1

Нужно просто указать название сборки, в которой определено пространство имён, вот так:

xmlns:lib="clr-namespace:ClassLibrary;assembly=ClassLibrary"

После этого всё должно заработать.

Источник: Microsoft (XAML Namespaces and Namespace Mapping for WPF XAML)

READ ALSO
Настройка камеры в PixelArt игре

Настройка камеры в PixelArt игре

Я изучаю Unity3D на основе 2D pixelArt игрыЕсть задача: Правильно настроить ортографическую камеру

177
TimerCallback &amp; Timer C#. Вызывает только один раз

TimerCallback & Timer C#. Вызывает только один раз

В конструкторе при создание класса создаю вот такой таймер

91
Не обновляется ListBox

Не обновляется ListBox

Пытаюсь разобраться с MVVM и написал небольшое приложениеДо определённого момента всё было прекрасно, но потом мой мозг сломался :( Итак есть...

106