// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT License. #pragma once namespace CalculatorApp { namespace ViewModel { ref class StandardCalculatorViewModel; /// /// Model representation of a single item in the Memory list /// [Windows::UI::Xaml::Data::Bindable] public ref class MemoryItemViewModel sealed : public Windows::UI::Xaml::Data::INotifyPropertyChanged, Windows::UI::Xaml::Data::ICustomPropertyProvider { public: MemoryItemViewModel(StandardCalculatorViewModel^ calcVM) : m_Position(-1), m_calcVM(calcVM) {} OBSERVABLE_OBJECT(); OBSERVABLE_PROPERTY_RW(int, Position); OBSERVABLE_PROPERTY_RW(Platform::String^, Value); virtual Windows::UI::Xaml::Data::ICustomProperty^ GetCustomProperty(Platform::String^ name) { return nullptr; } virtual Windows::UI::Xaml::Data::ICustomProperty^ GetIndexedProperty(Platform::String^ name, Windows::UI::Xaml::Interop::TypeName type) { return nullptr; } virtual property Windows::UI::Xaml::Interop::TypeName Type { Windows::UI::Xaml::Interop::TypeName get() { return this->GetType(); } } virtual Platform::String^ GetStringRepresentation() { return Value; } void Clear(); void MemoryAdd(); void MemorySubtract(); private: StandardCalculatorViewModel^ m_calcVM; }; } }