Заранее спасибо за помощь.
Я впервые разрабатываю в MVVM и хотел бы разделить бизнес-логику модели представления на два класса MyViewViewModel и MyViewCommand .
На самом деле я использую RelayCommand для привязки команд в модели представления.
MyViewCommandHandler:
/// <summary>
/// Constructor
/// </summary>
public ConfigRefCommandHandler(Action requestClose)
{
base.RequestClose += requestClose;
// Assign all operations to commands
// Config
this.CmdSelectAllReferences = new RelayCommand(this.SelectAllReferencesCmd, this.CanExecuteSelectAllReferencesCmd);
this.CmdModifyDetails = new RelayCommand(this.ModifyDetailsCmd, this.CanExecuteModifyDetailsCmd);
this.CmdProhibitPlanning = new RelayCommand(this.ProhibitPlannningCmd, this.CanExecuteProhibitPlannningCmd);
this.CmdExit = new RelayCommand(this.ExitCmd, this.CanExecuteExitCmd);
// Macro
this.CmdAddMacro = new RelayCommand(this.AddMacroCmd, this.CanExecuteAddMacroCmd);
this.CmdModMacro = new RelayCommand(this.ModMacroCmd, this.CanExecuteModMacroCmd);
this.CmdDelMacro = new RelayCommand(this.DelMacroCmd, this.CanExecuteDelMacroCmd);
// Program
this.CmdAddProgram = new RelayCommand(this.AddProgramCmd, this.CanExecuteAddProgramCmd);
this.CmdModProgram = new RelayCommand(this.ModProgramCmd, this.CanExecuteModProgramCmd);
this.CmdDelProgram = new RelayCommand(this.DelProgramCmd, this.CanExecuteDelProgramCmd);
}
MyViewViewModel:
/// <summary>
/// Internal reference
/// </summary>
public String InternalReference
{
get
{
return "test";
}
set
{
base.OnPropertyChanged("InternalReference");
}
}
/// <summary>
/// Constructor
/// </summary>
public ConfigRefViewModel(Action requestClose)
{
ConfigRefCommandHandler commandHandler = new ConfigRefCommandHandler(requestClose);
// Config
this.CmdSelectAllReferences = commandHandler.CmdSelectAllReferences;
this.CmdModifyDetails = commandHandler.CmdModifyDetails;
this.CmdProhibitPlanning = commandHandler.CmdProhibitPlanning;
this.CmdExit = commandHandler.CmdExit;
// Macro
this.CmdAddMacro = commandHandler.CmdAddMacro;
this.CmdModMacro = commandHandler.CmdModMacro;
this.CmdDelMacro = commandHandler.CmdDelMacro;
// Program
this.CmdAddProgram = commandHandler.CmdAddProgram;
this.CmdModProgram = commandHandler.CmdModProgram;
this.CmdDelProgram = commandHandler.CmdDelProgram;
}
Как передать MyViewViewModel в MyViewCommand , чтобы установить InternalReference свойство для активации метода OnPropertyChanged () для перезагрузки MyView ?