cppwirt Panel(或其他类)的子类,需要什么构造函数


对不起,我的英语不太好。我有一个像这样的课程
struct WrapPanel :winrt::Windows::UI::Xaml::Controls::PanelT<WrapPanel>
{
public:
WrapPanel(std::nullptr_t) {};
// other code.....
}

用于其他类别

WrapPanel wrapPanel{ ItemsPanelRoot().try_as<WrapPanel>()};
//Error C2440   'initializing': cannot convert from 'initializer list' to 'WrapPanel'   

比如:https://learn.microsoft.com/en-us/windows/uwp/cpp-and-winrt-apis/move-to-winrt-from-cx从基本运行时类转换为派生的

如果您在C++/WinRT中编写一个运行时类,您将在不同的命名空间中获得几个具有相同名称的类。假设有一个名为NS1的命名空间,其中有一个运行时类WrapPanel,您将得到winrt::NS1::WrapPanelwinrt::NS1::implementation::WrapPanelwinrt::NS1::factory_implementation::WrapPanel。第一个是我们通常使用的运行时类的"投影";第二个是"实现",它实现了运行时类;第三个是module.g.cpp使用的"工厂"。

如果将基类转换为派生基类,则应使用"投影"。您似乎使用了"实现"。