Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.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# 使用ICommand在数据库中保存MVVM_C#_Wpf_Xaml_Mvvm_Icommand - Fatal编程技术网

C# 使用ICommand在数据库中保存MVVM

C# 使用ICommand在数据库中保存MVVM,c#,wpf,xaml,mvvm,icommand,C#,Wpf,Xaml,Mvvm,Icommand,我有一个对话框来获取一些基本信息,以便在单击保存按钮时将这些信息保存到数据库中。 这些基本信息将通过绑定存储在ViewModel中。我通过实体框架和DataContext处理数据库 private Command.MonitoringTaskCommand objSaveButtonCommand = new Command.MonitoringTaskCommand( new Action<DataModel.MonitoringTask>(x =>

我有一个对话框来获取一些基本信息,以便在单击保存按钮时将这些信息保存到数据库中。 这些基本信息将通过绑定存储在ViewModel中。我通过实体框架和DataContext处理数据库

private Command.MonitoringTaskCommand objSaveButtonCommand =
    new Command.MonitoringTaskCommand(
        new Action<DataModel.MonitoringTask>(x => {
            DataModel.MonitorContext context = new DataModel.MonitorContext();
            context.MonitoringTasks.Add(x);
            context.SaveChanges();
        }),
        new Func<bool>(() => {
            Debug.WriteLine("Todo: Validate data... ");
            return true;
        }));
private命令。监视任务命令objSaveButtonCommand=
新建命令。监视任务命令(
新操作(x=>{
DataModel.MonitorContext上下文=新的DataModel.MonitorContext();
context.MonitoringTasks.Add(x);
SaveChanges();
}),
新函数(()=>{
WriteLine(“Todo:验证数据…”);
返回true;
}));
我坚持执行保存操作

  • 如何将数据传递给命令

我知道XAML级别上有CommandParameter,但数据存储在ViewModel中,可能与XAML级别的数据不同。

数据从命令的绑定传递,因此在绑定的位置使用CommandParameter绑定对象

检查本教程


XAML视图元素应与viewmodel的属性进行数据绑定(并在需要时进行更新)。还要考虑使用数据访问层来访问EF上下文。命令参数就是要走的路。