如果您有视图模型的公共父级,则可以使用该父级为您传递参数值。delegate
只需在相关视图模型中设置一个或多个s:
在具有要更新的相关参数的视图模型中......我们称之为ParameterViewModel
:
public delegate void ParameterChange(string parameter);
public ParameterChange OnParameterChange { get; set; }
在父级中:
ParameterViewModel viewModel = new ParameterViewModel();
viewModel.OnParameterChange += ParameterViewModel_OnParameterChange;
ListMenu.Add(viewModel);
// Add other view models
ParameterViewModel
参数更改时返回:
public string Parameter
{
get { return parameter; }
set
{
parameter = value;
NotifyPropertyChanged("Parameter");
// Always check for null
if (OnParameterChange != null) OnParameterChange(parameter);
}
}
现在在父视图模型中:
public void ParameterViewModel_OnParameterChange(string parameter)
{
// Do something with the new parameter data here
AnotherViewModel anotherViewModel = (AnotherViewModel)ListMenu[someIndex];
anotherViewModel.Parameter = parameter;
}
您可以从 MSDN 上的Delegates(C# 编程指南)页面了解有关使用delegate
对象的更多信息。