Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/320.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#_Wpf_Mvvm - Fatal编程技术网

C# 使用MVVM创建保存/加载函数

C# 使用MVVM创建保存/加载函数,c#,wpf,mvvm,C#,Wpf,Mvvm,我正在尝试创建一个可以以XML格式保存/加载的函数。问题是我对MainViewModel做了一些错误,导致了一些错误。我是这样做的,并评论了我从哪里得到的错误,以及: namespace Editor { public class MainViewModel : INotifyPropertyChanged { private double _x; private object _content; public object Co

我正在尝试创建一个可以以XML格式保存/加载的函数。问题是我对MainViewModel做了一些错误,导致了一些错误。我是这样做的,并评论了我从哪里得到的错误,以及:

namespace Editor
{
    public class MainViewModel : INotifyPropertyChanged
    {

        private double _x;
        private object _content;
        public object Content
        {
            get { return _content; }
            set
            {
                _content = value;
                OnPropertyChanged(nameof(Content));
            }
        }

        public double X
        {
            get { return _x; }
            set
            {
                _x = value;
                OnPropertyChanged(nameof(X));
            }
        }

        public ICommand BtnLoadCommand { get; }

        public ICommand BtnGemCommand { get; }

        public double Y { get; set; }

        public MainViewModel()
        {
            Content = new Save_Load(); //the type or namespace could not be found are you missing an assembly 
            BtnLoadCommand = new RelayCommand(Load); //cannot convert from method group to action
            BtnGemCommand = new RelayCommand(Save); //cannot convert from method group to action
        }

        private void Load(object sender, EventArgs e)
        {
            OpenFileDialog loadfiledialog = new OpenFileDialog();
            if (loadfildialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

            }
        }

        private void Save(object sender, EventArgs e)
        {
            SaveFileDialog gemfiledialog = new SaveFileDialog();
            if (gemfildialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {

            }

        }

        public event PropertyChangedEventHandler PropertyChanged;

        private void OnPropertyChanged(string propertyName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}
试试下面

BtnLoadCommand = new RelayCommand<object>(Load); 
BtnGemCommand = new RelayCommand<object>(Save);

BtnLoadCommand=新继电器命令(负载);
BtnGemCommand=新的中继命令(保存);

这里出现了一些非常标准的编译时错误;代码中没有“Save_Load”方法,而且
RelayCommand
的参数几乎肯定与预期不匹配(通常是
操作
)。关于这些错误,您还有更具体的问题吗?BtnLoadCommand=newrelaycommand(()=>Load);BtnGemCommand=新的中继命令(()=>保存);您好:)上面写着:
只能将赋值、调用、递增、递减和新对象表达式用作语句
我在多查看一次后编辑了答案:)。这将起作用这也不起作用,签名不匹配(你给出了动作,他正在传递动作)。您的评论更接近(但需要实际的方法调用)。如果你要回答他的问题,请尽量详细解释,因为仅仅给他工作代码对任何人都没有好处。