Как найти соответствующий частичный класс в C # и Visual Studio 2010 в файле XAML?

У меня есть приложение, созданное на сторонней платформе MVVM. У меня есть несколько представлений, которые будут по существу одинаковыми, поэтому я хочу вставить настраиваемый класс между моими представлениями и исходной базой представления фреймворка в качестве новой базы. Но когда я это делаю, я получаю сообщение об ошибке: «В частичных объявлениях не должны указываться разные базовые классы».

Поэтому в идеале я хотел бы изменить другую часть, чтобы использовать в качестве основы мой недавно введенный пользовательский базовый класс. Но нигде не могу найти. F12 вызывает только мой код, где ошибка генерируется, когда я меняю базу на новую базу, и файл XAML, который не имеет ссылки на исходную базу.

Где другой частичный класс? Как мне его найти? Или я, может быть, просто собираюсь создать свой собственный базовый класс для файла XAML, в первую очередь, совершенно неправильно?


person IAmAN00B    schedule 29.02.2012    source источник


Ответы (3)


У меня была такая же проблема, когда я переименовал пространство имен своего проекта Silverlight и получил сообщение «Невозможно разрешить символ 'Initialize Component'» в моем файле выделенного кода xaml:

  1. Откройте файл .cs программной части xaml, в котором возникла проблема;
  2. перейдите в Просмотр -> Просмотр классов, чтобы открыть проводник просмотра классов;
  3. в моем случае мне нужно было углубиться в пространство имен, которое нужно было изменить,
  4. затем я щелкнул по рассматриваемому частичному классу,
  5. затем внизу во второй панели появился сломанный метод InitializeComponent;
  6. дважды щелкните по нему, и частичный класс откроется с расширением .g.i.cs.
person King Whitey    schedule 03.12.2012

Скорее всего, это сам XAML -

Первая строка XAML (первое ключевое слово) определяет тип, на котором вы основаны (например, <Window или <UserControl). Это, вероятно, потребуется изменить на ваш базовый класс, а также на код файла.

person Reed Copsey    schedule 29.02.2012

Если я правильно понимаю ваш вопрос, это проблема, аналогичная той, что была у меня раньше.

Ваша проблема может заключаться в том, что файл XAML объявляет ваш элемент управления как UserControl:

<UserControl x:Class="Your.ExtendedControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <!-- other stuff goes here. -->
</UserControl>

Вышеупомянутое может быть причиной ошибки. XAML-файл должен использовать правильный базовый класс в качестве тега элемента, например:

<YourNamespace:YourBaseClass x:Class="Your.ExtendedControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:YourNamespace="clr-namespace:Your.Project.Namespace">
    <!-- other stuff goes here -->
</YourNamespace:YourBaseClass>
person ken    schedule 29.02.2012