58 lines
1.7 KiB
C++
58 lines
1.7 KiB
C++
// Copyright (c) Microsoft Corporation. All rights reserved.
|
|
// Licensed under the MIT License.
|
|
|
|
#pragma once
|
|
|
|
namespace CalculatorApp
|
|
{
|
|
namespace ViewModel
|
|
{
|
|
ref class StandardCalculatorViewModel;
|
|
|
|
/// <summary>
|
|
/// Model representation of a single item in the Memory list
|
|
/// </summary>
|
|
[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;
|
|
};
|
|
}
|
|
}
|