2016-10-21 2 views
0

Я пытаюсь создать функцию, которая может сохранять/загружать в формате XML. Проблема в том, что я делаю что-то неправильно с MainViewModel, что приводит к некоторым ошибкам. Я сделал это так и прокомментирован, где я получаю ошибки и какие:Создание функции сохранения/загрузки с MVVM

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)); 
     } 
    } 
} 
+0

Вы получаете некоторые довольно стандартные ошибки времени компиляции здесь; в коде нет метода «Save_Load», и ваши параметры в «RelayCommand» почти наверняка не соответствуют ожидаемым («Action » обычно). У вас есть более конкретный вопрос об ошибках? – BradleyDotNET

+0

BtnLoadCommand = new RelayCommand (() => Загрузка); BtnGemCommand = новый RelayCommand (() => Сохранить); –

ответ

-1

Try ниже

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

Hello :) В нем говорится: 'Только назначение, вызов, приращение, декремент и новые объектные выражения могут использоваться как оператор' –

+0

Я отредактировал ответ после еще одного вида :). Это будет работать –

+0

Это тоже не сработает, подписи не совпадут (вы дали Action , и он передает Action ). Ваш комментарий был ближе (но необходим фактический вызов метода). Если вы ответите на его вопрос, попробуйте объяснить это подробно, так как просто дать ему рабочий код никому не способствует. – BradleyDotNET

Смежные вопросы