|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
05.08.2013, 18:23 | #1 |
Пользователь
Регистрация: 19.11.2011
Сообщений: 83
|
Доступ к окнам откуда угодно [C#, WPF]
Только недавно начал изучать C#, WPF. Было много проблем, но они быстро решались. Но эту проблему на могу уже решить второй день. Вопрос, собственно, в заголовке: Как мне получить доступ к дочерним окнам из другого окна (не обязательно главного), например. К главному окну я обращаюсь так:
Код:
|
05.08.2013, 19:30 | #2 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Самый простой, хотя и нежелательный, способ - завести статические переменные на все нужные окна, и при создании каждого из них заполнитть переменные ссылками на созданные окна.
Например: Код:
Изобретатель велосипедов
|
05.08.2013, 22:14 | #3 | |
Пользователь
Регистрация: 19.11.2011
Сообщений: 83
|
Цитата:
|
|
05.08.2013, 22:42 | #4 |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Ну вариантов вообще не счесть) Что придёт в голову. Просто в большинстве случаев как раз-таки "доступ ко всему откуда угодно" - признак очень плохого дизайна.
Если каждое жалкое окошко будет иметь возможность при смене любой настройки козявить главную форму (например), то такой код очень быстро приведет к появлению фееричных багов. Как правило, чем меньше объект позволяет делать со своей внутренней логикой - тем лучше.
Изобретатель велосипедов
|
05.08.2013, 23:11 | #5 | |
Пользователь
Регистрация: 19.11.2011
Сообщений: 83
|
Цитата:
|
|
06.08.2013, 00:24 | #6 | |
Форумчанин
Регистрация: 21.01.2009
Сообщений: 719
|
Как вариант:
делаете интерфейс Код:
Код:
Код:
В принципе, если говорить о Цитата:
Главное чтобы просто ответственный за действие был один. Ну или механизм событий, как выше. Менее труЪ-вариант: Код:
Ну и напоследок: писать в соответствии с принципами ООП не стоит делать самоцелью. Если вы можете эффективно решать задачу, не следуя им, то и не надо. А вот если вы поняли, что эти принципы реально облегчают вам процесс разработки/поддержки/доработки вашей программы, то тогда флаг в руки.
Изобретатель велосипедов
Последний раз редактировалось Selestis; 06.08.2013 в 00:27. |
|
06.08.2013, 16:30 | #7 |
Пользователь
Регистрация: 19.11.2011
Сообщений: 83
|
Selestis, спасибо Вам за развернутые ответы, плюсую))
|
06.08.2013, 18:28 | #8 |
Форумчанин
Регистрация: 18.01.2012
Сообщений: 975
|
А в сторону PRISM и в частности EventAggregator посмотреть нет желания?
Благодарить в репутацию. Проклинать — туда же
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF | Casper-SC | WPF, UWP, WinRT, XAML | 3 | 03.03.2017 15:00 |
Доступ к окнам из другого класса | Стремящийся | Win Api | 18 | 01.09.2012 22:47 |
Доступ к TextBox в WPF из другого класса | CoderWPF | WPF, UWP, WinRT, XAML | 2 | 15.03.2012 11:07 |
Сколь угодно большое целое число | 1nd1g0k1d | Общие вопросы C/C++ | 3 | 29.02.2008 18:15 |