winrt::observable_map_base Strukturvorlage (C++/WinRT))
Eine Basisklasse, von der Sie ihre eigene benutzerdefinierte benutzerdefinierte assoziative Auflistung implementieren können. Weitere Informationen und Codebeispiele finden Sie unter Sammlungen mit C++/WinRT.
Syntax
template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>
Vorlagenparameter
typename D
Ihr abgeleiteter Typname.
typename K
Der Typ der Schlüssel in der Auflistung.
typename V
Der Typ der Werte in der Auflistung.
Anforderungen
Mindest unterstütztes SDK: Windows SDK Version 10.0.17763.0 (Windows 10, Version 1809)
Namespace: winrt
Header: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (standardmäßig enthalten)
Memberfunktionen
Funktion | BESCHREIBUNG |
---|---|
observable_map_base::Clear-Funktion | Entfernt alle Elemente aus dem observable_map_base-Objekt . |
observable_map_base::Erste Funktion | Ruft einen IIterator ab, der das erste Element im observable_map_base-Objekt darstellt. |
observable_map_base::GetView-Funktion | Ruft eine unveränderliche Ansicht des observable_map_base-Objekts ab. |
observable_map_base::HasKey-Funktion | Bestimmt, ob der angegebene Schlüssel zu einem Element im observable_map_base-Objekt gehört. |
observable_map_base::Insert-Funktion | Fügt ein Oder aktualisiert ein Element im observable_map_base-Objekt . |
observable_map_base::Nachschlagefunktion | Sucht das durch den angegebenen Schlüssel identifizierte Element nach, und ruft den entsprechenden Wert ab. |
observable_map_base::MapChanged-Funktion | Registriert und widerrufen eine Stellvertretung, die das zuordnende Ereignis des observable_map_base-Objekts behandelt. |
observable_map_base::Funktion entfernen | Entfernt ein Element aus dem observable_map_base-Objekt . |
observable_map_base::Size-Funktion | Ruft die Anzahl der Elemente im observable_map_base-Objekt ab. |
Iterators
Ein observable_map_base ist ein Bereich und dieser Bereich wird durch interne freie Funktionen definiert (jede ruft einen Iterator) ab, der mit Standardsprachefeatures kompatibel ist. Aus diesem Grund können Sie die Elemente in einem observable_map_base-Objekt mit einer bereichsbasierten for
Anweisung aufzählen.
Sie können auch einen IIterator aus der observable_map_base::First-Funktion abrufen und diese verwenden, um die Elemente in einem observable_map_base-Objekt zu iterieren.
...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyObservableMap :
implements<MyObservableMap, IObservableMap<winrt::hstring, int>, IMap<winrt::hstring, int>, IMapView<winrt::hstring, int>, IIterable<IKeyValuePair<winrt::hstring, int>>>,
winrt::observable_map_base<MyObservableMap, winrt::hstring, int>
{
auto& get_container() const noexcept
{
return m_values;
}
auto& get_container() noexcept
{
return m_values;
}
private:
std::map<winrt::hstring, int> m_values{
{ L"AliceBlue", 0xfff0f8ff }, { L"AntiqueWhite", 0xfffaebd7 }
};
};
...
IObservableMap<winrt::hstring, int> map{ winrt::make<MyObservableMap>() };
for (auto const& el : map)
{
std::wcout << el.Key().c_str() << L", " << std::hex << el.Value() << std::endl;
}
IIterator<IKeyValuePair<winrt::hstring, int>> it{ map.First() };
while (it.HasCurrent())
{
std::wcout << it.Current().Key().c_str() << L", " << std::hex << it.Current().Value() << std::endl;
it.MoveNext();
}
observable_map_base::Clear-Funktion
Entfernt alle Elemente aus dem observable_map_base-Objekt .
Syntax
void Clear() noexcept;
observable_map_base::Erste Funktion
Ruft einen IIterator ab, der das erste Element im observable_map_base-Objekt darstellt.
Syntax
auto First();
Rückgabewert
Ein IIterator , der das erste Element im observable_map_base-Objekt darstellt.
observable_map_base::GetView-Funktion
Ruft eine unveränderliche Ansicht des observable_map_base-Objekts ab.
Syntax
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Rückgabewert
Eine IMapView mit einer unveränderlichen Ansicht des observable_map_base.
observable_map_base::HasKey-Funktion
Bestimmt, ob der angegebene Schlüssel zu einem Element im observable_map_base-Objekt gehört.
Syntax
bool HasKey(K const& key) const noexcept;
Parameter
key
Der Schlüssel, nach dem gesucht werden soll.
Rückgabewert
true
wenn ein Element mit dem Schlüssel gefunden wird, andernfalls false
.
observable_map_base::Insert-Funktion
Fügt ein Oder aktualisiert ein Element im observable_map_base-Objekt .
Syntax
bool Insert(K const& key, V const& value);
Parameter
key
Der Schlüssel, der dem Element zugeordnet ist, um einzufügen oder zu aktualisieren.
value
Der Wert, der eingefügt oder ersetzt werden soll.
Rückgabewert
true
wenn ein Element mit dem angegebenen Schlüssel gefunden und aktualisiert wurde; andernfalls false
.
observable_map_base::Nachschlagefunktion
Sucht das durch den angegebenen Schlüssel identifizierte Element nach, und ruft den entsprechenden Wert ab.
Syntax
V Lookup(K const& key) const;
Parameter
key
Der Schlüssel zum Nachschlagen.
Rückgabewert
Der Wert, der dem Nachschlagen des Schlüssels entspricht, wenn gefunden wird, andernfalls wird eine winrt::hresult_out_of_bounds Ausnahme ausgelöst.
observable_vector_base::MapChanged-Funktion
Registriert und/oder widerrufen eine Stellvertretung, die das kartenänderungsereignis des observable_map_base-Objekts behandelt.
Syntax
// Register
winrt::event_token MapChanged(winrt::Windows::Foundation::Collections::MapChangedEventHandler<K, V> const& handler);
// Revoke with event_token
void MapChanged(winrt::event_token const cookie);
// Revoke with event_revoker
MapChanged_revoker MapChanged(winrt::auto_revoke_t, winrt::Windows::Foundation::Collections::MapChangedEventHandler<K, V> const& handler) const
Rückgabewert
Entweder void
, ein winrt::event_token , mit dem Sie einen registrierten Stellvertretung widerrufen können, oder ein MapChanged_revoker (ein Typ-Alias für einen Winrt::event_revoker< IObservableMapK<, V>>), mit dem Sie einen registrierten Stellvertretung widerrufen können.
Beispiel
winrt::event_revoker<IObservableMap<winrt::hstring, int>> m_event_revoker;
...
m_event_revoker = map.MapChanged(winrt::auto_revoke, [this](IObservableMap<winrt::hstring, int> const&, IMapChangedEventArgs<winrt::hstring> const&)
{
...
});
observable_map_base::Funktion entfernen
Entfernt ein Element aus dem observable_map_base-Objekt .
Syntax
void Remove(K const& key);
Parameter
key
Der schlüssel, der dem element zugeordnet ist, das entfernt werden soll.
observable_map_base::Size-Funktion
Ruft die Anzahl der Elemente im observable_map_base-Objekt ab.
Syntax
uint32_t Size() const noexcept;
Rückgabewert
Ein Wert, der die Anzahl der Elemente im observable_map_base-Objekt darstellt.