Как скопировать и вставить окно WPF (клонировать) и не иметь ошибокC#

Место общения программистов C#
Anonymous
Как скопировать и вставить окно WPF (клонировать) и не иметь ошибок

Сообщение Anonymous »

Я использую .Net 4.5.2 с WPF и C# 5.0. Я создал окно в проекте WPF. Я хотел бы скопировать и вставить это окно в обозреватель решений, создав второе окно, и переименовать его в новое имя.

Когда я это сделаю, новое (скопированное ) метод InitializeComponent() окна всегда выдает ошибку. Как можно аккуратно скопировать окно (и его код и т. д.) в обозревателе решений?

На этот вопрос частично ответили здесь: Копирование и вставка окна WPF выдает ошибку, однако ответ не решил мою проблему.

Мой подход (который не работает):
  • Создайте окно и назовите его WindowTest.
  • В обозревателе решений выберите WindowTest и скопируйте его, а затем вставьте в тот же проект.
  • Переименуйте. новое скопированное окно в WindowTestCopy.
  • В WindowTestCopy измените свойство x:class в xaml на WindowTestCopy вместо WindowTest.
  • Откройте код в WindowTestCopy и измените все ссылки на WindowTest на WindowTestCopy
  • Компилировать
Ожидается: ошибок нет, операция копирования (клонирования) прошла успешно

Фактическое: ошибка компиляции «Невозможно получить доступ к нестатическому методу «InitializeComponent» в статическом контексте».

У меня только одна ошибка. Очевидно, что InitializeComponent() становится неоднозначной ссылкой, но мне не ясно, как вручную отредактировать код, чтобы это исправить. Я бы хотел, чтобы VS или Resharper автоматически помогали мне в этом.

ОБНОВЛЕНИЕ

WindowTest содержит два пользовательских элемента управления, о которых я не упоминал ранее. После копирования/вставки по какой-то причине следующие элементы xaml в WindowTestCopy стали неверными:

xmlns:userControls....(ellided)
xmlns: userControls....(ellided)

Удалив их, Resharper определил, что в объектах userControl отсутствуют ссылочные теги xmlns, и спросил меня, хочу ли я импортировать их автоматически. Я выбрал да. После того, как Resharper добавил недостающие ссылочные теги xmlns, мне удалось скомпилировать (все ошибки исчезли).

У меня нет объяснения, почему это произошло. При воспроизведении я не редактирую xaml, поэтому он должен быть идентичен исходному xaml. Это любопытное поведение, но, по крайней мере, есть описанный обходной путь.

Подробнее здесь: https://stackoverflow.com/questions/276 ... ave-errors

Вернуться в «C#»