Я пытался изучать WPF так же, как я всегда изучал новые технологии: я взял лучшую книгу, которую я смог найти по этому вопросу (Адам Натан Windows Presentation Foundation Unleashed ), и прочитал ее ,
И это просто не сработало. Не пойми меня неправильно. Это выдающаяся книга. Это один из немногих предметов на моем столе, на котором нет другого предмета, потому что я поднимаю его так часто. Я уверен, что можно изучить WPF без него, но я бы не хотел пытаться. Я рекомендую это от всего сердца.
Проблема в том, что в WPF так много нового, что книга, намеревающаяся объяснить все это, будет ошеломляющей. И, к сожалению, все книги, которые я видел по WPF, посвящены технологиям, а не тому, как разрабатывать программы WPF. Это не незначительное различие.
Мой опыт работы с книгой Натана заключался в том, что я читал о XAML, расширениях разметки и преобразователях значений и еще о полдюжине других вещей, а затем, когда моя голова была полностью заполнена, и я еще не научился делать что-то полезное Я попал в раздел, посвященный работе со свойствами зависимостей, и только что закончил. Мне потребовалось месяцев , чтобы преодолеть этот горб.
И это не потому, что свойства зависимостей трудно понять. Их легко понять. Им просто трудно понять, если кто-то объясняет детали их реализации в то же время, он объясняет детали реализации всего остального, а вы пытаетесь понять, как написать программу.
Вот почему я думаю, что сработавшие примеры неоценимы. Я нашел статьи Джоша Смита о паттерне Model-View-ViewModel (MVVM) и привязке данных действительно очень полезными.
По сути, я думаю, что если вы попытаетесь изучить WPF без изучения MVVM, все, что вы будете делать, будет намного сложнее. Это не так, как MVVM трудно понять. У него есть неудачное название, которое звучит так, как будто астронавты управляют убежищем, но это действительно очень просто.