У меня есть класс MainViewModel, который является основой для моей навигации.Как передать ссылку на объект через CommandParameter
Внутри этого класса у меня есть этот метод с целью изменения объекта параметра, переданного выбранному поставщику.
class MainViewModel
{
public Command ShowVendorDialogCommand
{
get;
private set;
}
private void ShowVendorDialog(object parameter)
{
if (parameter != null)
{
VendorDialog vd = new VendorDialog();
VendorDialogViewModel vm = new VendorDialogViewModel();
vd.DataContext = vm;
vm.PropertyChanged += (s, e) =>
{
if (e.PropertyName == "CloseDialog")
{
vd.Close();
}
};
vd.ShowDialog();
if (vm.DialogResult)
{
parameter = vm.SelectedVendor.Copy() as Vendor;
}
}
}
}
Класс, который зависит от этого метода ниже:
class InventoryStyleSingleViewModel
{
public Vendor
{
get
{
return _Vendor;
}
set
{
if (value != null)
{
_Vendor = value;
OnPropertyChanged("Vendor");
}
}
}
private Vendor _Vendor;
........
}
Я по существу пытается передать свойство поставщика в качестве ссылочного типа через свойство CommandParameter к ShowVendorDialog, который выполняется через RelayCommand, я просто не знаю, как выполнить эталонную часть.
Это xaml, который привязывается к ShowVendorDialogCommand.
<Button Width="50" DockPanel.Dock="Left" Command="{Binding ElementName=BeginWindow, Path=DataContext.ShowVendorDialogCommand}" CommandParameter="{Binding Vendor}" Content="..." />
Это не сделать то, что мне нужно, как собственность поставщика передается по значению в функцию ShowVendorDialog.
Есть ли все, чтобы передать Продажу по ссылке?
Вы пытались указать вместе с контекстом? как 'DataConext.Vendor'? –
Это сработало! 'Command =" {Binding} "', и актерский состав отлично! Спасибо! –