Как создать разные файлы .cs - PullRequest
0 голосов
/ 17 декабря 2011

Есть ли способ в WPF для событий (таких как Click), чтобы метод был в другом файле .cs, а не MainWindow.xaml.cs (например)? Другими словами, когда я выбираю событие мыши и дважды щелкаю по нему, чтобы написать метод - метод появляется в MainWindow.xaml.cs .. Есть ли способ перенаправить его в другой файл? Мне нужен доступ ко всем атрибутам / полям, которые я использую (например, к текстовым полям, кнопкам и т. Д.), Которые находятся в главном окне .....

В моем MainWindow.xaml у меня есть методы, связанные с gotFocus, lostFocus и т. Д. Я не хочу иметь дело с сокетами и соединением в одном файле (так как я считаю, что это плохой дизайн). Поправь меня, если я ошибаюсь.

Ответы [ 3 ]

3 голосов
/ 17 декабря 2011

Если вы действительно хотите, вы можете создать Partial Class , чтобы поместить ваши обработчики событий. Он все равно будет частью класса MainWindow, но будет в другом файле.

Тем не менее, лучшим вариантом было бы переместить ваш код для работы с сокетами и соединениями в свой собственный класс или классы, оставив при этом код обработки событий в MainWindow.xaml.cs.Частичные классы - не совсем подходящий инструмент для использования в этом случае, ИМО.

2 голосов
/ 17 декабря 2011

звучит так, как будто вы хотите использовать шаблон проектирования MVVM (кстати, WPF очень хорошо к этому подходит).

вот хорошая статья на MSDN , вот одна от Джоша Смита , и Google покажет гораздо больше

звучит так, как будто вам нужно посмотреть на команду , а также

1 голос
/ 17 декабря 2011

Если вы хотите удалить зависимость между пользовательским интерфейсом и Codebehind, то, вероятно, лучшая идея, так как вы используете WPF - это шаблон MVVM.Таким образом, вы не должны знать, что происходит, когда вы нажимаете на кнопку и т. Д. В противном случае вы можете подумать о ICommand, чтобы отделить команду от вашего кода.именно то, что @ Mead'Dib рекомендовал.

Другая область, которую вы можете исследовать, - подумать о чем-то вроде Command Pattern, где вы можете разделить Receiver и invoker.Так что вы не тесно связаны с кодом позади.Так что просто подумайте об использовании некоторого шаблона, который сделает вас безопасным, когда проблемы с обслуживанием там.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...