// // $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; }; }