Передача данных из одной viewmodel в другую. WPF MVVM
Я пишу программу на c#, wpf по паттерну mvvm. Возник вопрос, как передать данные из одной viewmodel в другую. Перерыл кучу похожих статей, но так и не смог разобраться.
У меня есть View, которая содержит информацию о поставках, при нажатии на кнопку появляется UserControl, в котором можно изменять выбранную, на предыдущем UserControl, запись.
//Поле и свойство выбираемой записи
private SupplyModel _selectedSupply;
public SupplyModel SelectedSupply
{
get => _selectedSupply;
set
{
_selectedSupply = value;
OnPropertyChanged(nameof(SelectedSupply));
OnPropertyChanged(nameof(SelectedSupplyWorkers));
}
}
//Команда для отображения view для редактирования
private void ExecuteShowAddSupplyCommand(object? obj)
{
CurrentChildView = new EditSupplyViewModel();
IsEnabled = false;
BackVisibility = Visibility.Visible;
}
Соответственно вопрос, как я могу передать SelectedSupply
из SupplyViewModel
в EditSupplyViewModel
?
UserControl отображается в ContentControl
<ContentControl HorizontalAlignment="Right"
Width="{Binding ActualWidth, ElementName=WidthDockPanel}"
Content="{Binding CurrentChildView}">
<UserControl.Resources>
<DataTemplate DataType="{x:Type viewmodel:EditSupplyViewModel}">
<local:EditSupplyView/>
</DataTemplate>
</UserControl.Resources>
Источник: Stack Overflow на русском