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.

Siehe auch