Я столкнулся с этой проблемой, связанной с созданием подкласса класса Windows.UI.Xaml.Button в C ++ / CX, и я хотел бы знать, что происходит.
Если я создаю подкласс управления Buttonи добавление экземпляра подкласса в сетку, все работает как ожидалось.
Если добавить к подклассу метод переопределения OnApplyTemplate () , я получаю NULL-pointerexception при добавленииэкземпляр подкласса в сетке.
Мой код выглядит примерно так (LayoutRoot является сеткой в MainPage.xaml, этот пример был протестирован в пустом простом приложении метро):
// Scenario 1: This works
LayoutRoot->Children->Append(ref new MyButton1());
// Scenario 2: This doesn't work, it will cause a NULL-pointer exception
LayoutRoot->Children->Append(ref new MyButton2());
// This is how MyButton1 and MyButton2 is defined
public ref class MyButton1 : public Button {
public:
MyButton1() {};
~MyButton1() {};
};
public ref class MyButton2 : public Button {
public:
MyButton2() {};
~MyButton2() {};
virtual void OnApplyTemplate() override {};
};
Обратите внимание, что этот вопрос немного похож на этот вопрос , но ошибка и сценарий достаточно разные, чтобы я мог опубликовать этот вопрос отдельно.