modelo de struct winrt::observable_map_base (C++/WinRT))
Uma classe base da qual você pode derivar para implementar sua própria coleção associativa observável personalizada. Para obter mais informações e exemplos de código, consulte Coleções com C++/WinRT.
Syntax
template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>
Parâmetros de modelo
typename D
Seu nome de tipo derivado.
typename K
O tipo das chaves na coleção.
typename V
O tipo dos valores na coleção.
Requisitos
SDK mínimo com suporte: Windows SDK versão 10.0.17763.0 (Windows 10, versão 1809)
Namespace: winrt
Cabeçalho: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluído por padrão)
Funções de membro
Função | Descrição |
---|---|
função observable_map_base::Clear | Remove todos os elementos do objeto observable_map_base . |
função observable_map_base::First | Recupera um IIterator que representa o primeiro elemento no objeto observable_map_base . |
Função observable_map_base::GetView | Recupera uma exibição imutável do objeto observable_map_base . |
Função observable_map_base::HasKey | Determina se a chave especificada pertence a um elemento no objeto observable_map_base . |
função observable_map_base::Insert | Insere ou atualiza um elemento no objeto observable_map_base . |
Função observable_map_base::Lookup | Pesquisa o elemento identificado pela chave especificada e recupera o valor correspondente. |
Função observable_map_base::MapChanged | Registra e revoga um delegado que manipula o evento alterado pelo mapa do objeto observable_map_base . |
função observable_map_base::Remove | Remove um elemento do objeto observable_map_base . |
Função observable_map_base::Size | Recupera o número de elementos no objeto observable_map_base . |
Iterators
Um observable_map_base é um intervalo e esse intervalo é definido por funções livres internas (cada uma das quais recupera um iterador) compatíveis com os recursos de linguagem padrão. Por isso, você pode enumerar os elementos em um objeto observable_map_base com uma instrução baseada em for
intervalo.
Você também pode recuperar um IIterator da função observable_map_base::First e usá-lo para iterar por meio dos elementos em um 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();
}
função observable_map_base::Clear
Remove todos os elementos do objeto observable_map_base .
Syntax
void Clear() noexcept;
função observable_map_base::First
Recupera um IIterator que representa o primeiro elemento no objeto observable_map_base .
Sintaxe
auto First();
Valor retornado
Um IIterator que representa o primeiro elemento no objeto observable_map_base .
Função observable_map_base::GetView
Recupera uma exibição imutável do objeto observable_map_base .
Sintaxe
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Valor retornado
Um IMapView que contém uma exibição imutável do observable_map_base.
Função observable_map_base::HasKey
Determina se a chave especificada pertence a um elemento no objeto observable_map_base .
Sintaxe
bool HasKey(K const& key) const noexcept;
Parâmetros
key
A chave a ser pesquisada.
Valor retornado
true
se um elemento que contém a chave for encontrado, caso contrário false
.
função observable_map_base::Insert
Insere ou atualiza um elemento no objeto observable_map_base .
Sintaxe
bool Insert(K const& key, V const& value);
Parâmetros
key
A chave associada ao elemento a ser inserido ou atualizado.
value
O valor a ser inserido ou substituído.
Valor retornado
true
se um elemento com a chave especificada foi encontrado e atualizado; caso contrário false
.
Função observable_map_base::Lookup
Pesquisa o elemento identificado pela chave especificada e recupera o valor correspondente.
Sintaxe
V Lookup(K const& key) const;
Parâmetros
key
A chave a ser pesquisada.
Valor retornado
O valor correspondente à chave que está sendo pesquisada se encontrado, caso contrário, uma exceção winrt::hresult_out_of_bounds é lançada.
Função observable_vector_base::MapChanged
Registra e/ou revoga um delegado que manipula o evento alterado pelo mapa do objeto observable_map_base .
Sintaxe
// 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 retornado
Um void
winrt::event_token com o qual você pode revogar um delegado registrado ou um MapChanged_revoker (um alias de tipo para um winrt::event_revoker< IObservableMapK<, V>>) com o qual você pode revogar um delegado registrado.
Exemplo
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&)
{
...
});
função observable_map_base::Remove
Remove um elemento do objeto observable_map_base .
Sintaxe
void Remove(K const& key);
Parâmetros
key
A chave associada ao elemento a ser removido.
Função observable_map_base::Size
Recupera o número de elementos no objeto observable_map_base .
Sintaxe
uint32_t Size() const noexcept;
Valor retornado
Um valor que representa o número de elementos no objeto observable_map_base .