Как я уже говорил много раз ранее, MVVM не означает «нет кода позади».Есть вещи, которые вы можете или должны делать в программном коде, если они строго связаны с представлением и не являются необходимыми для корректной работы ViewModel.
При этом в большинстве случаев вы не нужно , чтобы сделать что-нибудь в коде позади.Обычно вы используете привязки для управления представлением из ViewModel.Это позволяет ViewModel полностью игнорировать представление: оно просто предоставляет свойства, к которым может иметь представление представление, и отправляет уведомления, когда значения свойств изменяются.ViewModel определенно должен не манипулировать представлением или его компонентами.
Все в опубликованном вами коде может быть сделано с привязками в XAML:
textBox1.Visibility
может быть привязан к свойству bool ViewModel, используя BooleanToVisibilityConverter
lbxHusbandsWives.ItemsSource
может быть привязан к ObservableCollection
в ViewModel (ObservableCollection
уведомляет представление, когда элементы добавляются илиисключено из него) txtHusbandsWives.Text
, cbxHusbandsWivesCountry.Text
и dpHusbandsWives.SelectedDate
также могут быть привязаны к свойствам соответствующего типа