いくつかの WinRT コンポーネントから 1 つの基本クラスに共通のコードを抽出したいので、コピーして貼り付ける必要はありません。次の基本クラスがあります。
[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クラスは1つのrefクラスしか継承できず、他はインターフェイスでなければならないため、私が望むようにすることはできません。しかし、設定時にいくつかのロジックを持つ依存関係プロパティを持つこのクラスが必要であり、このプロパティをすべてのクラスにコピーして貼り付けたくありません。問題は、WinRT でそれを実現する方法です。