Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVVM实现查询_C#_Mvvm - Fatal编程技术网

C# MVVM实现查询

C# MVVM实现查询,c#,mvvm,C#,Mvvm,作为MVVM的新手,我需要了解MVVM,还需要对我的一些基本查询进行评论 我已经在我的测试项目中实现了INotifyPropertyChanged 例如:员工类,读取数据,在表单上显示,编辑数据,提交时,使用MVVM更新员工源 但需要一个想法,我们如何才能使下面的代码作为一个完整的sln 要启用/禁用按钮,如何实现ICommand接口 MVVM中的控制器是什么 从UI,流如何进入模型 接口INotifyPropertyChanged应在model或viewmodel上实现 为什么我们需要MVVM

作为MVVM的新手,我需要了解MVVM,还需要对我的一些基本查询进行评论

我已经在我的测试项目中实现了INotifyPropertyChanged 例如:员工类,读取数据,在表单上显示,编辑数据,提交时,使用MVVM更新员工源

但需要一个想法,我们如何才能使下面的代码作为一个完整的sln

  • 要启用/禁用按钮,如何实现ICommand接口
  • MVVM中的控制器是什么
  • 从UI,流如何进入模型
  • 接口INotifyPropertyChanged应在model或viewmodel上实现
  • 为什么我们需要MVVM中的ICommand接口和ObservableCollection
  • 我们可以使用适用于Windows的MVVM,还是仅适用于WPF
  • 为什么每个人都强调首先实现模型
  • 任何好的链接,将解释的基本用法 我们必须在MVVM中实现的所有接口,才能说我的MVVM实现完成了

    class EMP
    {
        public EMP()
        {
    
        }
    
        public string EmpName { get; set; }
        public string EmpID { get; set; }
    
    }
    
    
    class EmpVModel: INotifyPropertyChanged
    {
        public EmpVModel()
        {
            Employees = GetEmployeeList();
        }
    
        ObservableCollection<EMP> GetEmployeeList()
        {
            ObservableCollection<EMP> objEmp = new ObservableCollection<EMP>();
            objEmp.Add(new EMP { EmpName = "A", EmpID = "1" });
            return objEmp;
    
        }
    
        public event PropertyChangedEventHandler PropertyChanged;
        public ObservableCollection<EMP> _Emp;
    
        public ObservableCollection<EMP> Employees
        {
            get { return _Emp; }
            set { _Emp = value; RaiseChange("Employees");  }
        }
    
        public void RaiseChange(string Employee)
        {
            if (PropertyChanged != null)
            {
                PropertyChanged(this, new PropertyChangedEventArgs(Employee));
            }
        }
    }
    
    class-EMP
    {
    公共环境管理计划()
    {
    }
    公共字符串EmpName{get;set;}
    公共字符串EmpID{get;set;}
    }
    类EmpVModel:INotifyPropertyChanged
    {
    公共EmpVModel()
    {
    Employees=GetEmployeeList();
    }
    ObservableCollection GetEmployeeList()
    {
    ObservableCollection objEmp=新的ObservableCollection();
    添加(新的EMP{EmpName=“A”,EmpID=“1”});
    返回对象;
    }
    公共事件属性更改事件处理程序属性更改;
    公共可观测收集(Emp);;
    公开收集雇员
    {
    获取{return\u Emp;}
    设置{u Emp=value;提高更改(“员工”);}
    }
    public void RaiseChange(字符串雇员)
    {
    if(PropertyChanged!=null)
    {
    财产变更(此,新财产变更开发者(员工));
    }
    }
    }
    
    提前感谢…

    您可以从这里开始:


    然后转到

    这是一个很复杂的问题。请看一看,也请看文章中引用的链接,以便进一步阅读