In meiner Windows Store App implementiere ich die Eigenschaftchange event in einer Basisklasse mit dem Namen "BaseClass", und schreibe die Eigenschaften, die ich an mein gridview-Element binden möchte, und erbe die Basisklasse "BaseClass" in der Abgeleiteten Klasse "DerivedClass".
[Windows::UI::Xaml::Data::Bindable]
ref class BaseClass: Windows::UI::Xaml::DependencyObject, Windows::UI::Xaml::Data::INotifyPropertyChanged
{
}
ref class DerivedClass: public BaseClass
{
}
dann habe ich eine Windows :: UI :: Xaml :: Interop :: erstelltIBindableObservableVector ^ vector und Anhängen des Basisklassenobjekts aus dem abgeleiteten Klassenobjekt mit safe_cast. Die Basisklassendaten werden jedoch nicht an die Rasteransicht gebunden. Wenn Sie jedoch ein Objekt der Basisklasse erstellen, können die Daten an die Rasteransicht gebunden werden.
DerivedClass^ derivedClass = ref new DerivedClass();
BaseClass^ baseClass = safe_cast<BaseClass^>(derivedClass);
Windows::UI::Xaml::Interop::IBindableObservableVector^ m_Vector = ref new Platform::Collections::Vector<BaseClass^>();
m_Vector->Append(baseClass);
gridview->ItemsSource = m_Vector; // Not binding data to gridview.
aber
BaseClass^ baseClass2 = ref new BaseClass();
Windows::UI::Xaml::Interop::IBindableObservableVector^ m_Vector = ref new Platform::Collections::Vector<BaseClass^>();
m_Vector->Append(baseClass2);
gridview->ItemsSource = m_Vector; // its Binding data to gridview.
Antworten:
0 für die Antwort № 1Möglicherweise müssen Sie Ihr Ansichtsmodell mit Anmerkungen versehen bindbar:
[Windows::UI::Xaml::Data::Bindable]
ref class DerivedClass: public BaseClass
{
}