//
// RelayCommand.cpp
// Implementierung des RelayCommand und verknüpfter Klassen
//
#include "pch.h"
#include "RelayCommand.h"
#include "NavigationHelper.h"
using namespace $safeprojectname$::Common;
using namespace Platform;
using namespace Platform::Collections;
using namespace Windows::Foundation;
using namespace Windows::Foundation::Collections;
using namespace Windows::System;
using namespace Windows::UI::Core;
using namespace Windows::UI::ViewManagement;
using namespace Windows::UI::Xaml;
using namespace Windows::UI::Xaml::Controls;
using namespace Windows::UI::Xaml::Input;
using namespace Windows::UI::Xaml::Navigation;
///
/// Legt fest, ob dieser im aktuellen Zustand ausgeführt werden kann.
///
///
/// Die vom Befehl verwendeten Daten. Wenn für den Befehl keine Datenübergabe erforderlich ist, kann dieses Objekt auf NULL festgelegt werden.
///
/// True, wenn dieser Befehl ausgeführt werden kann, andernfalls False.
bool RelayCommand::CanExecute(Object^ parameter)
{
return (_canExecuteCallback) (parameter);
}
///
/// Führt den im aktuellen Befehlsziel aus.
///
///
/// Die vom Befehl verwendeten Daten. Wenn für den Befehl keine Datenübergabe erforderlich ist, kann dieses Objekt auf NULL festgelegt werden.
///
void RelayCommand::Execute(Object^ parameter)
{
(_executeCallback) (parameter);
}
///
/// Zum Aufrufen des -Ereignisses verwendete Methode
/// um anzugeben, dass der Rückgabewert von
/// Die Methode hat sich geändert.
///
void RelayCommand::RaiseCanExecuteChanged()
{
CanExecuteChanged(this, nullptr);
}
///
/// RelayCommand-Klassendestruktor.
///
RelayCommand::~RelayCommand()
{
_canExecuteCallback = nullptr;
_executeCallback = nullptr;
};
///
/// Erstellt einen neuen Befehl, der immer ausgeführt werden kann.
///
/// Die Logik des Ausführungsstatus.
/// Die Ausführungslogik.
RelayCommand::RelayCommand(std::function canExecuteCallback,
std::function executeCallback) :
_canExecuteCallback(canExecuteCallback),
_executeCallback(executeCallback)
{
}