Изначально файл code-behind совместно с конвертерами данных в WPF служил той же цели, что и code-behind в VB6, C #, VB.NET, что у вас есть. Это прежде всего место для размещения кода, который реагирует на события пользовательского интерфейса. Однако в случае WPF и Silverlight кодирование в файле с выделенным кодом может быть очень запутанным и в дальнейшем может легко привести к проблемам с обслуживанием, если будет реализовано нечто большее, чем простейшая программа.
«Model-View-ViewModel» (MVVM) был задуман, я думаю, в конце разработки WPF; Silverlight был задуман позже, чем MVVM. Рядом, как я могу сказать. Не каждый консультант, которого я слышал о WPF или Silverlight, убежден, что MVVM - это «предпочтительный» шаблон проектирования, но это модель надежной абстракции.
WPF не так хорош, как WinForms, даже сегодня. Это является частью того, что делает его потенциально очень запутанным с потенциальными проблемами обслуживания. MVVM, как шаблон проектирования, компенсирует многие недостатки, связанные с незрелостью XAML и WPF / Silverlight в качестве модели пользовательского интерфейса, и в то же время раскрывает большинство огромных преимуществ, предлагаемых XAML и WPF.
Резюме MVVM доступны здесь , здесь и здесь . Джош Смит является ведущим авторитетом в области паттернов, он продает книгу под названием « Advanced MVVM », которая, как мне сказали, полезна; Однако я смог реализовать некоторые сложные реализации без него.