如何解决为什么没有 SelectorT?
我正在尝试实现一个自定义控件(我称之为 DataGrid),我选择从 Selector
派生。在 cppwinrt 中,我写了一些这样的
struct DataGrid : SelectorT<DataGrid>
{
}
此代码无法编译。事实上,在任何附带的 Windows.UI.Xaml.Controls.Primitives.h 文件中都没有这样一个名为 SelectorT
的结构。我检查了 SDK (19041) 附带的 winmd 文件,发现 Selector
是 Composable
(具有 ComposableAttribute
属性),因此,应该已生成 SelectorT
,我错过了什么?非常感谢!
解决方法
没有 SelectorT
因为 Selector
不能被子类化。消费投影中的 TypenameT
类模板不是为了方便而提供的,它们的存在是为了提供支持它的 Xaml 类型的用户定义子类。这允许用户定义他们自己的 overrideable 方法实现。 (可以认为它类似于 C++ 虚函数,但采用复杂的 COM 聚合方式)
文档似乎没有清楚地说明哪些类可以被子类化,哪些不能。不过,您可以从类型上存在的 ComposableAttribute
推断出这一点,如 FrameworkElement 中所示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。