我有一個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,我只是不知道如何完成參考部分。
這是綁定到ShowVendorDialogCommand的xaml。
<Button Width="50" DockPanel.Dock="Left" Command="{Binding ElementName=BeginWindow, Path=DataContext.ShowVendorDialogCommand}" CommandParameter="{Binding Vendor}" Content="..." />
由於Vendor屬性是通過值傳遞給ShowVendorDialog函數的,所以這並沒有達到我所需要的。
無論如何要通過參考供應商?
您是否嘗試與上下文一起指定?像'DataConext.Vendor'? –
工作正常! '命令=「{綁定}」'和演員就好了!謝謝! –