Ответ 1
Похоже, вы не изменили ваш файл MyClass.xaml
. Там должно быть что-то вроде этого
<MyClass x:Class="MyOldNameSpace.MyReferencedClass"
но должен быть "My New NameSpace.MyReferencedClass"
Я переименовал пространство имен ссылочного класса, и компилятор WPF не хочет его учитывать: он сохраняет префикс MyOldNameSpace в файле .g.cs:
[System.CodeDom.Compiler.GeneratedCodeAttribute
("PresentationBuildTasks", "4.0.0.0")]
public partial class MyClass:
MyOldNameSpace.MyReferencedClass,
System.Windows.Markup.IComponentConnector {
Почему? Как это исправить? Какой этот непонятный файл .g.cs?
Похоже, вы не изменили ваш файл MyClass.xaml
. Там должно быть что-то вроде этого
<MyClass x:Class="MyOldNameSpace.MyReferencedClass"
но должен быть "My New NameSpace.MyReferencedClass"
Закройте файл .g.cs. Вы даже можете удалить его.
g означает сгенерированное, VS генерирует проводку между кодом и Xaml в этом частичном классе.
Очистите решение и перестройте. Это должно исправить это.
Не забудьте также изменить файл Generic.xaml,
<ResourceDictionary
xmlns:local="clr-namespace:MyOldNameSpace">
</ResourceDictionary>
В моем случае удаление obj-папки исправило ошибку.
Также проверьте xmlns: local в Application.xaml. Это застало меня на некоторое время...
Возможно, другой случай заключается в том, что действие сборки вашего xaml не является "страницей", а другими параметрами.