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 .