Эта ошибка, кажется, опубликована повсюду, но у каждого, похоже, есть свое решение, ни одно из которых не решило мою проблему.
Я получаю сообщение об ошибке для словаря ресурсов, который я делаю (и позднее объединяю), что тег 'ModelBindings' не существует в пространстве имен XML 'clr-namespace: Company.Project.Module.Folder; assembly = Company.Project .module '
Сборка, на которую я ссылаюсь, является нестандартной и содержится в решении. Мало того, но мы рассмотрели DLL, помещенную в корзину для проекта, в котором находится словарь ресурсов, и после проверки он содержит класс, на который я хочу ссылаться. Итак, я знаю, что 1. DLL находится в нужном месте для доступа и находится в ссылках. 2. DLL содержит данные, которые я хочу.
Вот некоторые фрагменты кода для словаря ресурсов
Список пространства имен
xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"
Создание ресурса для ссылки
<modulemodel:ModelBindings x:Key="ModuleModelBindings"/>
Как и ошибки других людей, intellisense говорит, что это кошерное. ТАКЖЕ листинг xmlns был создан с автозаполнением intellisense и перепечатан вручную. Ни один не работал.
Я также пытался переместить все в app.xaml, и он все еще выдал мне ту же ошибку.
Если я удаляю тело файла ResourceDictionary, код компилируется нормально, но все привязки нарушаются.
Наконец, все определения ресурсов, которые должны были быть определены в файлах xaml, где они использовались, работали нормально. Только после того, как я попытался создать их из другого проекта, он не сработал. Я изменил это, чтобы исправить ошибку, и возвращение к старому методу может быть проблематичным.
Редактировать: Вот лучшее, что я могу сделать в плане отображения словаря ресурсов, который я использую
<SharedResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:modulemodel="clr-namespace:Company.Project.Module.Folder;assembly=Company.Project.Module"
>
<modulemodel:ModelBindings x:Key="ModuleModelBindings"/>
</SharedResourceDictionary>
если я заменю SharedResourceDictionary на ResourceDictionary, произойдет та же ошибка.
app.xaml и SharedResourceDictionary выше приведены для сравнения в пространстве имен Company.Project.Main, и в нем есть ссылки как на то место, где определен SharedResourceDictionary, так и на различные проекты модулей, которые я поместил в код выше
Решение
Похоже, это была в основном ошибка пользователя. Но это может случиться с другими. Когда я скопировал определение xmlns: moduleviewmodel из его исходного файла, мне пришлось добавить часть assembly = самостоятельно. Как я уже сказал, я сделал это сам, а также использовал автозаполнение, следующее из ввода 'xmlns: moduleviewmodel ='. Прямо перед тем, как мы нашли ошибку, мы снова попробовали автозаполнение, потому что обнаружили, что было одно из 7 пространств имен, не генерирующих ошибку. Тогда я заметил, что в пути сборки есть буква без заглавной буквы, которая должна быть. Странно то, что автозаполнение фактически вставляет эту ошибку самостоятельно. Пока мы составляли, я заметил ошибочное письмо. Более странно то, что после того, как я исправил все пути вручную, мы снова попробовали автозаполнение, и оно записало его правильно.
Понятия не имею, почему произошла ошибка автозаполнения, но с фиксированной буквой он компилируется просто отлично.
Теперь мне просто интересно, поверит ли кто-нибудь, что автозаполнение изменилось на меня!