2012-06-29 42 views
0

我正在設計MVVM模式的WPF應用程序體系結構。現在我有以下情況:命令操作與幾個視圖模型

class ParentViewModel : ViewModelBase<IParent> 
{ 
    public ObservableCollection<ChildViewModel> Children { get; private set; } 
} 

class ChildViewModel : ViewModelBase<IChild> 
{ 
    public ICommand ParentAndChildCommand { get; private set; } 
} 

class ParentAndChildCommand : ICommand 
{ 
    public void Execute(object parameter) 
    { 
     // ParentViewModel.DoSomething(ChildViewModel); 
    } 

    public bool CanExecute(object parameter) 
    { 
     // return CanExecute(ParentViewModel, ChildViewModel); 
    } 
} 

我到目前爲止看到的唯一的解決辦法是處理執行,並在ParentViewModel類ParentAndChildCommand的QueryCanExecute事件。但我相信這種情況有更好的解決方案。請告知如何設計這樣的邏輯。提前致謝。

+0

這是非常普遍的問題。請描述你的特定情況,你無法執行的是什麼。否則,請閱讀有關MVVM實施的更多信息 –

+0

您的問題是什麼?你想達到什麼目的? – Guillaume

+0

我有一個Parent對象的集合,每個對象都有他自己的Child對象集合。每個Child對象都有他的命令(由TreeView的ContextMenu調用),但這些命令依賴於Parent對象,因此要執行Child命令,我必須知道Child對象屬於哪個Parent。我可以使Child對象中的「Parent」屬性或Child類中的某些事件在Parent對象上處理。但我覺得你可以給我提供更好的解決方案。謝謝。 – maxibrain

回答