首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >什么是可组合的运行时类?

什么是可组合的运行时类?
EN

Stack Overflow用户
提问于 2018-07-28 15:22:29
回答 1查看 1.1K关注 0票数 3

我正在尝试使用C++/WinRT创建一个简单的xaml应用程序。

我来自WPF背景,在那里,有一个实现INotifyPropertyChanged并让其他类继承它的基类是很常见的。

当我试图对C++-WinRT做同样的操作时,我失败了,但出错了。

代码语言:javascript
复制
error MIDL4006: [msg]A runtime class can derive only from a composable runtime class.

下面是相关代码的其余部分供参考:

ObservableObject.idl:

代码语言:javascript
复制
namespace Example
{
    runtimeclass ObservableObject : Windows.UI.Xaml.DependencyObject, Windows.UI.Xaml.Data.INotifyPropertyChanged
    {
        ObservableObject();
    }
}

MainViewModel.idl:

代码语言:javascript
复制
import "ObservableObject.idl";

namespace Example
{
    runtimeclass MainViewModel : ObservableObject
    {
        MainViewModel();
        Int32 MyProperty;
    }
}

那么,什么是可组合的运行时类呢?有什么方法可以用C++/WinRT实现这一点吗?我真的不想在每次定义新的可绑定类时重复INotifyPropertyChanged实现。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-24 03:46:00

如果从DependencyObject继承,实际上不需要实现INotifyPropertyChanged,反之亦然(即使在WPF中)。

在WinRT类型中不建议继承自定义runtimeclass,因为JavaScript不知道继承,因此App在这种情况下将失败。

如果您不想每次编写相同的逻辑,那么声明一个C++原生类并实现接口(不要继承winrt::implement)。让实现类继承它。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51572715

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档