В настоящее время я создаю usercontrol в wpf, который состоит из нескольких «экранов», которые пользователь нажимает.Свойство зависимостей Pass для дочернего представления
Я пытаюсь сделать это в относительно хорошем MVVM-способе, но у меня есть немного проблем с передачей свойств каждому виду.
Для каждого «экрана» я создал представление с его собственной моделью (например, View1.xaml, View2.xaml). Главный UserControl может затем получить доступ к этим просмотров:
<UserControl.Resources>
<local:ModuleBaseViewModel x:Key="ViewModelDataSource" />
</UserControl.Resources>
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource ViewModelDataSource}}">
<Grid Background="#FF054549">
<local:View1 Visibility="Visible"/>
<local:View2 Visibility="Hidden"/>
</Grid>
</Grid>
Теперь у меня есть некоторые свойства, которые я хотел бы поделиться между каждым видом (например, цвет фона). Если я поместил это свойство в основную модель просмотра usercontrol, он будет проигнорирован, потому что у каждого представления есть DataContext, установленный в его собственную модель представления.
Есть ли способ передать свойство в каждую из режимов просмотра без необходимости его дублирования? Или я делаю это совершенно неправильно?
Спасибо!
Спасибо, относительная привязка работает красиво (хотя делает код привязки довольно длинным)! – user2424495