我正在尝试使用 C++/WinRT 创建一个简单的 xaml 应用程序。
我来自 WPF 背景,拥有一个实现 INotifyPropertyChanged 的基类并让其他类继承自它是很常见的。
当我尝试对 C++-WinRT 执行相同操作时,我失败并出现错误
error MIDL4006: [msg]A runtime class can derive only from a composable runtime class.
以下是其余相关代码供参考:
ObservableObject.idl:
namespace Example
{
runtimeclass ObservableObject : Windows.UI.Xaml.DependencyObject, Windows.UI.Xaml.Data.INotifyPropertyChanged
{
ObservableObject();
}
}
MainViewModel.idl:
import "ObservableObject.idl";
namespace Example
{
runtimeclass MainViewModel : ObservableObject
{
MainViewModel();
Int32 MyProperty;
}
}
那么究竟什么是可组合的运行时类呢?有没有办法用 C++/WinRT 实现这一点?我真的不想每次定义一个新的可绑定类时都重复 INotifyPropertyChanged 实现。