//
// $safeitemname$.xaml.h
// Deklaration der $safeitemname$-Klasse
//
#pragma once
#include "$safeitemname$.g.h"
#include "Common\NavigationHelper.h"
namespace $rootnamespace$
{
///
/// Eine Seite, auf der ein Gruppentitel, eine Liste mit Elementen innerhalb der Gruppe sowie Details für das
/// momentan ausgewählte Element angezeigt werden.
///
[Windows::Foundation::Metadata::WebHostHidden]
public ref class $safeitemname$ sealed
{
public:
$safeitemname$();
static void RegisterDependencyProperties();
static property Windows::UI::Xaml::DependencyProperty^ DefaultViewModelProperty
{
Windows::UI::Xaml::DependencyProperty^ get() { return _defaultViewModelProperty; }
}
static property Windows::UI::Xaml::DependencyProperty^ NavigationHelperProperty
{
Windows::UI::Xaml::DependencyProperty^ get() { return _navigationHelperProperty; }
}
///
/// Dies kann in ein stark typisiertes Anzeigemodell geändert werden.
///
property Windows::Foundation::Collections::IObservableMap^ DefaultViewModel
{
Windows::Foundation::Collections::IObservableMap^ get();
}
///
/// NavigationHelper wird auf jeder Seite zur Unterstützung bei der Navigation verwendet und
/// Prozesslebensdauer-Verwaltung
///
property Common::NavigationHelper^ NavigationHelper
{
Common::NavigationHelper^ get();
}
protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
virtual void OnNavigatedFrom(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
private:
void LoadState(Platform::Object^ sender, Common::LoadStateEventArgs^ e);
void SaveState(Object^ sender, Common::SaveStateEventArgs^ e);
bool CanGoBack();
void GoBack();
#pragma region Logical page navigation
// Die geteilte Seite ist so entworfen, dass wenn Fenster nicht genug Raum hat, um sowohl
// die Liste als auch die Details anzuzeigen, nur jeweils ein Bereich angezeigt wird.
//
// All dies wird mit einer einzigen physischen Seite implementiert, die zwei logische Seiten darstellen
// kann. Mit dem nachfolgenden Code wird dieses Ziel erreicht, ohne dass der Benutzer aufmerksam gemacht wird auf den
// Unterschied.
void Window_SizeChanged(Platform::Object^ sender, Windows::UI::Core::WindowSizeChangedEventArgs^ e);
void ItemListView_SelectionChanged(Platform::Object^ sender, Windows::UI::Xaml::Controls::SelectionChangedEventArgs^ e);
bool UsingLogicalPageNavigation();
void InvalidateVisualState();
Platform::String^ DetermineVisualState();
#pragma endregion
static Windows::UI::Xaml::DependencyProperty^ _defaultViewModelProperty;
static Windows::UI::Xaml::DependencyProperty^ _navigationHelperProperty;
static const int MinimumWidthForSupportingTwoPanes = 768;
};
}