добавление пользовательского пространства имен к xaml

Я являюсь довольно новым на C#, WPF и XAML, таким образом, я не могу использовать правильные термины для задавания правильного вопроса =) Я пытаюсь добавить свое собственное пространство имен к моему xaml файлу для использования моего собственного класса легко-I, предполагают, что причина - это - я написал следующий код в теге окна для этого:

xmlns:myns="clr-namespace:LibNameSpace" 

Где мой тег окна также запускается со следующего определения:

< Window x:Class="LibNameSpace.MainWindow"

Я хочу использовать LibNameSpace:Class1 класс, и я надеялся записать myns:Class1 для этого. Однако та команда вызывает эту ошибку:

Неопределенное пространство имен CLR. URI 'пространства имен сброса' отсылает к пространству имен 'LibNameSpace', который не включен в блок.

Как я могу зафиксировать это?

12
задан Tiago Almeida 5 December 2012 в 11:43
поделиться

2 ответа

Название LibNameSpace звучит так, как будто это библиотека в другой сборке. Если это так, необходимо добавить имя сборки:

xmlns:myns="clr-namespace:LibNameSpace;assembly=MyLibAssembly

Update:

Имя сборки можно найти в project-explorer в propeties-screen проекта (библиотеки-сборки). В общем случае имя файла dll без суффикса dll- представляет собой имя сборки.

29
ответ дан 2 December 2019 в 03:11
поделиться

Поскольку для меня не совсем понятно, что вы хотите сделать, попробуйте еще раз:

Если MyLibAssembly является основным пространством имен вашего приложения и у вас есть Окно с именем MainWindow и класс с именем Class1 , который вы хотите создать в своем MainWindow -классе:

  • Убедитесь, что в Class1 нет ошибка, проект должен компилировать без ошибок. Сначала удалите объявление пространства имен из xaml и скомпилируйте свой проект, пока у вас не будет ошибок компиляции.
  • Убедитесь, что Class1 является общедоступным и имеет конструктор без параметров
  • Убедитесь, что в коде позади ваш MainWindow также находится в MyLibAssembly -namcespace.
  • Добавьте затем объявление-namspace xmlns: local = "clr-namespace: LibNameSpace в ваш xaml. местный обычно используется для объявления того же пространства имен, что и ваш текущий элемент, в вашем случае окно находится внутри.
  • Вставьте свой Class1 с -тег в файле xaml. Если Class1 не является производным от FrameworkElement или элемента управления более высокого уровня, вы должны добавить его в раздел ресурсов вашего окна. Если это правда, дайте ему ключ.

Возможно, vs не синхронизирован. Щелкните в обозревателе решений на корневом узле Чистое решение , а затем Восстановить решение . Может быть, это поможет.

Надеюсь, это помогло.Если нет, попробуйте переформатировать свой вопрос (используйте символ кода, чтобы сделать вопрос более читаемым, и попробуйте перефразировать, чтобы более четко обозначить ваше желание).

10
ответ дан 2 December 2019 в 03:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: