Plantilla de estructura winrt::observable_map_base (C++/WinRT))
Clase base de la que puede derivar para implementar su propia colección asociativa observable personalizada. Para obtener más información y ejemplos de código, consulta Colecciones con C++/WinRT.
Sintaxis
template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>
Parámetros de plantilla
typename D
Nombre del tipo derivado.
typename K
Tipo de las claves de la colección.
typename V
Tipo de los valores de la colección.
Requisitos
SDK mínimo admitido: Windows SDK versión 10.0.17763.0 (Windows 10, versión 1809)
Espacio de nombres: winrt
Encabezado: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluido de forma predeterminada)
Funciones miembro
Función | Descripción |
---|---|
función observable_map_base::Clear | Quita todos los elementos del objeto observable_map_base . |
observable_map_base::First (Función) | Recupera un objeto IIterator que representa el primer elemento del objeto observable_map_base . |
función observable_map_base::GetView | Recupera una vista inmutable del objeto observable_map_base . |
función observable_map_base::HasKey | Determina si la clave especificada pertenece a un elemento del objeto observable_map_base . |
función observable_map_base::Insert | Inserta o actualiza un elemento en el objeto observable_map_base . |
función observable_map_base::Lookup | Busca el elemento identificado por la clave especificada y recupera el valor correspondiente. |
función observable_map_base::MapChanged | Registra y revoca un delegado que controla el evento modificado por el mapa del objeto observable_map_base . |
observable_map_base::Remove (Función) | Quita un elemento del objeto observable_map_base . |
función observable_map_base::Size | Recupera el número de elementos del objeto observable_map_base . |
Iterators
Un observable_map_base es un intervalo y ese intervalo se define mediante funciones libres internas (cada una de las cuales recupera un iterador) que son compatibles con las características de lenguaje estándar. Por este motivo, puede enumerar los elementos de un objeto observable_map_base con una instrucción basada en for
intervalos.
También puede recuperar un IIterator de la función observable_map_base::First y usarlo para recorrer en iteración los elementos de un objeto 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();
}
función observable_map_base::Clear
Quita todos los elementos del objeto observable_map_base .
Sintaxis
void Clear() noexcept;
observable_map_base::First (Función)
Recupera un objeto IIterator que representa el primer elemento del objeto observable_map_base .
Sintaxis
auto First();
Valor devuelto
IIterator que representa el primer elemento del objeto observable_map_base.
función observable_map_base::GetView
Recupera una vista inmutable del objeto observable_map_base .
Sintaxis
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Valor devuelto
IMapView que contiene una vista inmutable de la observable_map_base.
función observable_map_base::HasKey
Determina si la clave especificada pertenece a un elemento del objeto observable_map_base .
Sintaxis
bool HasKey(K const& key) const noexcept;
Parámetros
key
Clave que se va a buscar.
Valor devuelto
true
es si se encuentra un elemento que contiene la clave; de lo contrario false
, es .
función observable_map_base::Insert
Inserta o actualiza un elemento en el objeto observable_map_base .
Sintaxis
bool Insert(K const& key, V const& value);
Parámetros
key
Clave asociada al elemento que se va a insertar o actualizar.
value
Valor que se va a insertar o reemplazar.
Valor devuelto
true
si se encontró y actualizó un elemento con la clave especificada; de lo contrario false
, .
función observable_map_base::Lookup
Busca el elemento identificado por la clave especificada y recupera el valor correspondiente.
Sintaxis
V Lookup(K const& key) const;
Parámetros
key
Clave que se va a buscar.
Valor devuelto
Valor correspondiente a la clave que se busca si se encuentra; de lo contrario, se produce una excepción winrt::hresult_out_of_bounds .
función observable_vector_base::MapChanged
Registra o revoca un delegado que controla el evento de cambio de mapa del objeto observable_map_base .
Sintaxis
// 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
Valor devuelto
, void
un winrt::event_token con el que se puede revocar un delegado registrado o un MapChanged_revoker (un alias de tipo para un winrt::event_revoker< IObservableMapK<, V>>) con el que se puede revocar un delegado registrado.
Ejemplo
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 (Función)
Quita un elemento del objeto observable_map_base .
Sintaxis
void Remove(K const& key);
Parámetros
key
Clave asociada al elemento que se va a quitar.
función observable_map_base::Size
Recupera el número de elementos del objeto observable_map_base .
Sintaxis
uint32_t Size() const noexcept;
Valor devuelto
Valor que representa el número de elementos del objeto observable_map_base .