Теперь, когда я знаю WPF - и, в частности, теперь, когда я понимаю привязку, команды и шаблон MVVM - я не собираюсь снова использовать WinForms. WinForms подойдет, если вы разрабатываете простые статические пользовательские интерфейсы, которые никогда не изменятся, и если вам все равно, как они выглядят на машинах, отличных от вашей рабочей станции разработки. Но как только вы начинаете нуждаться в большем, ваш код пользовательского интерфейса становится все более сложным и сложным в обслуживании.
WPF-приложения на первый взгляд кажутся более сложными, особенно если вы думаете о WinForms как о молоте, и ваш подход к изучению WPF состоит в том, чтобы обдумать его. Но как только вы поймете привязку и шаблоны и примете шаблоны проектирования, использующие преимущества этих технологий, сложность исчезнет. Существует бюрократия - реализация INotifyPropertyChanged
и свойств зависимостей и RoutedCommand
s довольно утомительна, и кажется, что, возможно, отсутствует уровень абстракции - но если вы посмотрите на поверхность, приложения WPF на самом деле намного проще, чем приложения WinForms. Привязка коллекции объектов к ItemsSource
из ItemsControl
и реализация DataTemplate
для этих объектов приводит к очень небольшому объему кода и работает, что было бы значительным усилием в WinForms.