将命令绑定到子视图模型

我正在尝试将命令绑定到ViewModel,该ViewModel是另一个ViewModel的属性。 如果我绑定到父视图模型(即; DataContext)中的命令,它工作正常。 如果我尝试绑定到一个属性为datacontext的视图模型,它不起作用(没有任何反应)。 以下代码说明事物的结构。

public class DataViewModel : ViewModelBase
{
   private ICommand _myCommand;
   public ICommand MyCommand {get{return _myCommand;}}

   public DataViewModel()
   {
       _myCommand=new DelegateCommand(myMethod,null);
   }

   private myMethod( object o)
   {
     // do whatever
   }
}

public class ParentViewModel 
{
   private DataViewModel _dataContainer=new DataViewModel();
   public DataViewModel DataContainer {get {return _dataContainer;} set {_dataContainer=value;}}
}

我的XAML看起来像这样:同样,我的视图绑定到ParentViewModel并且工作正常,直接在ParentViewModel中生活的命令工作正常。

<Button Command={Binding Path=DataContainer.MyCommand} Content="Get Data />

我已经尝试将按钮的DataContext设置为DataContainer,但没有奏效。 这可能吗?

链接地址: http://www.djcxy.com/p/56163.html

上一篇: Binding Commands to a Sub Viewmodel

下一篇: WPF, MVVM, ICommand, and repositories