2013-07-23 2 views
1

в моем проекте WPF на C#, у меня есть окно с холстом, дерево с некоторыми элементами и рамкой. Кадр используется для размещения страницы, которая изменяется на основе выбранного элемента treeview. На странице у меня есть текстовые поля, в которых я могу написать двойные значения.wpf C#: окно, страница и события

I.e. если я выбираю первый элемент дерева, загружаемая страница - это Page1, в которой есть 2 текстовых поля, если я выбираю второй, загружаемая страница - это Page2, в которой есть 3 текстовых поля.

Мне нужно, что после изменения значения в текстовом поле я могу выполнить некоторую операцию на холсте, то есть, если я напишу значение, строка в холсте будет перемещаться по этому значению в определенном направлении. Событие для управления присутствует в классе Page, но Canvas находится в классе Window. Итак, как я могу управлять холстом извне класса Window? Или мне нужно изменить макет окна и не использовать Frame для размещения страницы с текстовыми полями? Любое предложение?

Thanks

ответ

1

В зависимости от вашей установки существует несколько вариантов.

  1. Вы можете пузырить событие изнутри класса страницы до вашего окна.
  2. Вы можете передать объект Canvas в класс страницы, когда он создан.
  3. Если вы используете MVVM или что-то в этом роде, вы можете использовать фреймворк обмена сообщениями, доступный в большинстве наборов инструментов MVVM.
  4. Я уверен, что есть много других вариантов, с которыми люди будут звонить.

Лично мне нравится 3, но если вы еще не знакомы с MVVM и инструментариями, это может быть излишним для вас.

+0

Я никогда не использовал MVVM и его инструментальные средства ... и теперь я думаю, что мой проект настолько велик, что меняет схему разработки ... Что вы думаете об изменении схемы окна, удалении фрейма и использовании какой-либо другой техники? динамический раздел с n текстовыми полями? – FrancescoDS

+0

@FrancescoDS Почему не просто 2 передать объект Canvas на страницу? – Paparazzi

+0

Если я передаю холст на страницу, мне нужно переместить методы рисования на страницу тоже? до того, как у меня был холст на странице, но я переместил его, потому что мне нужно управлять автоматическим изменением размера холста в соответствии с изменением размера окна. Поэтому я не знаю, что лучше всего подходит для создания такого окна – FrancescoDS

Смежные вопросы