У меня есть родительское представление, которое определяет дочернее представление в Xaml. Дочернее представление имеет DependencyProperty
, которое связано с ViewModel родительского представления. Однако это значение также необходимо для ViewModel дочернего представления.
<custom:Parent>
<custom:Child ChildId="{Binding ParentFooId}" ... />
</custom:Parent>
ChildId
реализовано как свойство зависимости элемента управления ChildView
. Если ChildViewModel
требуется ParentFooId
, каков правильный способ получения MVVM?
Я не хочу преобразовывать DataContext
ChildView
в ChildViewModel
и устанавливать значение в обработчике OnChildIdChanged
ChildView
. Мне кажется, это не очень MVVM.
Другая альтернатива, о которой я подумал, - это создать новый ChildViewModel
со значением и установить его как DataContext
в событии OnParentFooIdChanged
(в ParentViewModel
); но это тоже не совсем правильно, поскольку предполагается, что ViewModels не обращают внимания на View (и, следовательно, ничего не знают о DataContext
s).
Кажется, я упускаю что-то очевидное ...