如果您擁有視圖模型的通用父項,那麼您可以使用該父項爲您傳遞參數值。只需在相關視圖模型建立了一個或多個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;
}
你可以找到更多關於使用從Delegates (C# Programming Guide)頁面上MSDN delegate
對象。
您的視圖模型之間是否有共同的父項? – Sheridan
我有MainWindow與ObservableCollection的其他ViewModels和在窗口的右側我有: –
Chris
迴應您的評論,我現在已添加到您的問題,我強烈建議您編輯您的問題,並向我們展示您嘗試使用本網站的慣例。 – Sheridan