36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
namespace CalculatorApp
|
|
{
|
|
namespace Common
|
|
{
|
|
/// <summary>
|
|
/// Implementation of <see cref="INotifyPropertyChanged"/> to simplify models.
|
|
/// </summary>
|
|
[Windows::Foundation::Metadata::WebHostHidden]
|
|
public ref class BindableBase : Windows::UI::Xaml::DependencyObject, Windows::UI::Xaml::Data::INotifyPropertyChanged, Windows::UI::Xaml::Data::ICustomPropertyProvider
|
|
{
|
|
public:
|
|
virtual event Windows::UI::Xaml::Data::PropertyChangedEventHandler^ PropertyChanged;
|
|
|
|
public:
|
|
// ICustomPropertyProvider
|
|
virtual Windows::UI::Xaml::Data::ICustomProperty^ GetCustomProperty(Platform::String^ name);
|
|
virtual Windows::UI::Xaml::Data::ICustomProperty^ GetIndexedProperty(Platform::String^ name, Windows::UI::Xaml::Interop::TypeName type);
|
|
virtual Platform::String^ GetStringRepresentation();
|
|
|
|
property Windows::UI::Xaml::Interop::TypeName Type
|
|
{
|
|
virtual Windows::UI::Xaml::Interop::TypeName get() { return this->GetType(); }
|
|
}
|
|
|
|
|
|
protected:
|
|
virtual void OnPropertyChanged(Platform::String^ propertyName);
|
|
};
|
|
}
|
|
}
|