modello di struct winrt::observable_map_base (C++/WinRT))

Classe di base da cui è possibile derivare per implementare la propria raccolta associativa osservabile personalizzata. Per altre informazioni ed esempi di codice, vedere Raccolte con C++/WinRT.

Sintassi

template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>

Parametri di modelli

typename D Nome del tipo derivato.

typename K Tipo delle chiavi nell'insieme.

typename V Tipo dei valori dell'insieme.

Requisiti

SDK minimo supportato: Windows SDK versione 10.0.17763.0 (Windows 10, versione 1809)

Spazio dei nomi: winrt

Intestazione: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluso per impostazione predefinita)

Funzioni membro

Funzione Descrizione
funzione observable_map_base::Clear Rimuove tutti gli elementi dall'oggetto observable_map_base .
observable_map_base::First funzione Recupera un IIterator che rappresenta il primo elemento nell'oggetto observable_map_base .
funzione observable_map_base::GetView Recupera una visualizzazione non modificabile dell'oggetto observable_map_base .
funzione observable_map_base::HasKey Determina se la chiave specificata appartiene a un elemento nell'oggetto observable_map_base .
funzione observable_map_base::Insert Inserisce o aggiorna un elemento nell'oggetto observable_map_base .
funzione observable_map_base::Lookup Cerca l'elemento identificato dalla chiave specificata e recupera il valore corrispondente.
funzione observable_map_base::MapChanged Registra e revoca un delegato che gestisce l'evento con modifica della mappa dell'oggetto observable_map_base .
observable_map_base::Remove funzione Rimuove un elemento dall'oggetto observable_map_base .
funzione observable_map_base::Size Recupera il numero di elementi nell'oggetto observable_map_base .

Iterators

Un observable_map_base è un intervallo e tale intervallo è definito da funzioni gratuite interne (ognuna delle quali recupera un iteratore) compatibile con le funzionalità del linguaggio standard. A causa di questo, è possibile enumerare gli elementi in un oggetto observable_map_base con un'istruzione basata su for intervallo.

È anche possibile recuperare un IIterator dalla funzione observable_map_base::First e usarlo per scorrere gli elementi in un oggetto observable_map_base .

...
#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();
}

funzione observable_map_base::Clear

Rimuove tutti gli elementi dall'oggetto observable_map_base .

Sintassi

void Clear() noexcept;

observable_map_base::First funzione

Recupera un IIterator che rappresenta il primo elemento nell'oggetto observable_map_base .

Sintassi

auto First();

Valore restituito

IIterator che rappresenta il primo elemento dell'oggetto observable_map_base.

funzione observable_map_base::GetView

Recupera una visualizzazione non modificabile dell'oggetto observable_map_base .

Sintassi

winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;

Valore restituito

IMapView contenente una visualizzazione non modificabile della observable_map_base.

funzione observable_map_base::HasKey

Determina se la chiave specificata appartiene a un elemento nell'oggetto observable_map_base .

Sintassi

bool HasKey(K const& key) const noexcept;

Parametri

key Chiave da cercare.

Valore restituito

true se viene trovato un elemento contenente la chiave, in caso contrario false.

funzione observable_map_base::Insert

Inserisce o aggiorna un elemento nell'oggetto observable_map_base .

Sintassi

bool Insert(K const& key, V const& value);

Parametri

key Chiave associata all'elemento da inserire o aggiornare.

value Valore da inserire o sostituire.

Valore restituito

true se è stato trovato e aggiornato un elemento con la chiave specificata; altrimenti false.

funzione observable_map_base::Lookup

Cerca l'elemento identificato dalla chiave specificata e recupera il valore corrispondente.

Sintassi

V Lookup(K const& key) const;

Parametri

key Chiave da cercare.

Valore restituito

Il valore corrispondente alla chiave da cercare se trovato, in caso contrario viene generata un'eccezione winrt::hresult_out_of_bounds .

funzione observable_vector_base::MapChanged

Registra e/o revoca un delegato che gestisce l'evento modificato dalla mappa dell'oggetto observable_map_base .

Sintassi

// 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

Valore restituito

void, un winrt::event_token con cui è possibile revocare un delegato registrato o un MapChanged_revoker (un alias di tipo per un winrt::<event_revoker IObservableMapK<, V>>) con cui è possibile revocare un delegato registrato.

Esempio

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::Remove funzione

Rimuove un elemento dall'oggetto observable_map_base .

Sintassi

void Remove(K const& key);

Parametri

key Chiave associata all'elemento da rimuovere.

funzione observable_map_base::Size

Recupera il numero di elementi nell'oggetto observable_map_base .

Sintassi

uint32_t Size() const noexcept;

Valore restituito

Valore che rappresenta il numero di elementi nell'oggetto observable_map_base .

Vedi anche