我想从几个 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 来实现呢?