2013-04-04 6 views
1

Я довольно новичок в программировании на WPF и C#, большинство из моих предыдущих работ были в winforms и vb.net. Прежде чем я смогу задать свой вопрос, вот несколько примеров, чтобы объяснить, что я пытаюсь достичь. У меня довольно простое приложение, предназначенное для чтения книг, однако требуется несколько «представлений», для которых я использую страницы, размещенные в кадре в главном окне. Одна из моих «страниц» имеет дочерние настройки usercontrol, в основном, когда пользователь нажимает на параметр (например, чтобы показать или скрыть элемент или элемент, размещенный на родительской странице »(НЕ основной), или вызвать событие на «page». Я хотел бы знать, как этого добиться, я потратил дни на поиск решения этой проблемы. Некоторый пример кода и т. д. также будет полезной помощью.Вызвать событие на странице из отдельного usercontrol

+0

Можете ли вы предоставить некоторые графики, чтобы объяснить, чего вы пытаетесь достичь, пожалуйста? – Constanta

+0

Если я правильно понимаю, вы хотите, чтобы ваша «страница» обновлялась из того, что вы будете делать в своем контроле пользователя? – Lance

+0

Да, именно это, страница должна быть обновлена ​​из элемента управления дочернего пользователя. Поэтому, если в usercontrol установлен переключатель, чтобы контролировать видимость элемента на странице, то элемент страницы становится скрытым. – user2244077

ответ

0

Я рекомендую взглянуть на модель- Шаблон View-ViewModel (MVVM). Это шаблон, который отделяет вашу бизнес-логику от пользовательского интерфейса с промежуточным уровнем (ViewModel), который управляет состоянием вашего приложения и т. Д. Ваш интерфейс взаимодействует с механизмами ViewModel через DataBinding, которые довольно сложны. Вы найдете кучу информации по всем этим темам.

To poi nt вы в правильном направлении: у вас будет ViewModel, который содержит всю информацию о состоянии для вашего пользовательского интерфейса, например, какие элементы отображаются. Ваш UserControl привязан к ViewModel таким образом, что он, например, переключает флаг видимости элемента. «Страница» привязана к тому же свойству и соответственно устанавливает видимость элемента.

Мой совет: WPF - очень, очень сложная и очень, очень мощная система. Нет смысла использовать его без MVVM и соответствующей архитектуры программного обеспечения. Вы не узнаете WPF/MVVM через пару дней, возможно, даже недель. Вы должны начать с основных понятий, возможно, получить книгу и забыть о своих конкретных проблемах на некоторое время. Это того стоит. Если у вас нет времени для этого, придерживайтесь того, что вы знаете, это будет разочаровывать иначе ...

Удачи!

+0

Спасибо, посмотрим, что, оцените обратную связь – user2244077

+0

Проблема решена. Внедрили достойный шаблон MVVM, и приложение работает именно так, как я хочу! Благодаря вашей помощи – user2244077

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