Наследование WinRT и общий код

Я хочу извлечь общий код из нескольких компонентов WinRT в один базовый класс, поэтому мне не нужно копировать&мимо него. У меня есть следующий базовый класс:

[Windows::Foundation::Metadata::WebHostHidden]
ref class ExpandableView : public Windows::UI::Xaml::DependencyObject
{
public:
static void onIsExpandedChanged(Windows::UI::Xaml::DependencyObject^ object,
Windows::UI::Xaml::DependencyPropertyChangedEventArgs^ arguments);
public:
property bool IsExpanded
{
bool get(){return (bool)GetValue(IsExpandedProperty);}
void set(bool value){SetValue(IsExpandedProperty, value);}
}
static property Windows::UI::Xaml::DependencyProperty^ IsExpandedProperty
{
Windows::UI::Xaml::DependencyProperty^ get(){return  _IsExpandedProperty;}
}
protected:
ExpandableView();
virtual void viewExpanded();
virtual void viewCollapsed();
private:
void _expand();
void _collapse();
private:
static Windows::UI::Xaml::DependencyProperty^ _IsExpandedProperty;
};

И я создаю несколько пользовательских элементов управления, которые должны быть как-то унаследованы от этого базового класса. И это невозможно сделать так, как я хочу, потому что класс winrt может наследовать только один класс ref, а другие должны быть интерфейсами. Но мне нужен именно этот класс, у которого есть свойство зависимости, которое имеет некоторую логику, когда оно установлено, и я не хочу копировать&мимо этого свойства во всех моих классах.
Вопрос в том, как этого добиться с помощью WinRT.

0

Решение

Вы пытались использовать шаблон и наследование определенного необходимого класса:

template<typename BaseClass>
ref class ExpandableView : public BaseClass;

Теперь подклассы повторного использования ExpandableView может наследовать все, что им нужно, не только Windows::UI::Xaml::DependencyObject,

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]