Compartir a través de


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

, voidun 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 .

Consulte también