晴天ღ. 2023-05-06 15:42 采纳率: 60%
浏览 35
已结题

关于#wpf#的问题:有关WPF中DataContext上下文数据传递问题

有关WPF中DataContext上下文问题
刚刚学习WPF,在xaml对应的xaml.cs文件中,this.DataContext只能被一个ViewModel所赋值。那么我就想,将其他B C D (ViewModel)放在A(ViewModel)中。结果发现,B C D(ViewModel)中的属性无法被读取。请问大家,这是怎么一回事呢

public class MainWindow : Window
{
    public MainWindow()
    {
        A_ViewModel = new A_ViewMode();
        this.DataContext = A_ViewModel;
        //当前MainWindow.xmal的对应前端UI中无法读取到A_ViewModel中的B_ViewModel的CloseCommand属性
        //已经证实,CloseCommand是没有问题的,通过直接this.DataContext = B_ViewModel;证实过
    }
    public A_ViewMode; A_ViewModel;
}
 
public class A_ViewModel :ICommand
{
   public A_ViewModel()
   {
      B_ViewModel= new B_ViewModel();
      //具体不再写了,表示new过
    }
     public B_ViewModel B_ViewModel;
}
public class B_ViewModel :ICommand
{
   public B_ViewModel()
   {
      CloseCommand = new ICommand();
    //具体不再写了,表示new过
    }
  public ICommand CloseCommand { get; set;}
}

  • 写回答

2条回答 默认 最新

  • 晴天ღ. 2023-05-06 15:57
    关注

    补充一下,是不是我的理解有问题? 一个View仅仅对应一个ViewModel,而我的思想是把一个View中功能细分了,产生了多个ViewModel。却想把这个多个ViewModel全都绑定到一个View上? 这是不是我对MVVM框架理解的有问题啊?

    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 6月6日
  • 创建了问题 5月6日