winrt::observable_map_base modèle de struct (C++/WinRT))
Classe de base à partir de laquelle vous pouvez dériver pour implémenter votre propre collection associative observable personnalisée. Pour plus d’informations et des exemples de code, consultez Collections avec C++/WinRT.
Syntax
template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>
Paramètres de modèle
typename D
Nom de votre type dérivé.
typename K
Type des clés de la collection.
typename V
Type des valeurs de la collection.
Spécifications
Kit de développement logiciel (SDK) pris en charge minimum : Windows SDK version 10.0.0.17763.0 (Windows 10, version 1809)
Espace de noms : winrt
En-tête : %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (inclus par défaut)
Fonctions Membre
Fonction | Description |
---|---|
observable_map_base::Clear, fonction | Supprime tous les éléments de l’objet observable_map_base . |
observable_map_base::First, fonction | Récupère un IIterator représentant le premier élément de l’objet observable_map_base . |
observable_map_base::GetView, fonction | Récupère une vue immuable de l’objet observable_map_base . |
observable_map_base::HasKey, fonction | Détermine si la clé spécifiée appartient à un élément de l’objet observable_map_base . |
observable_map_base::Insert, fonction | Insère ou met à jour un élément dans l’objet observable_map_base . |
observable_map_base::Lookup, fonction | Recherche l’élément identifié par la clé spécifiée et récupère la valeur correspondante. |
observable_map_base:MapChanged, fonction | Inscrit et révoque un délégué qui gère l’événement map-change de l’objet observable_map_base . |
observable_map_base::Remove, fonction | Supprime un élément de l’objet observable_map_base . |
observable_map_base:Size, fonction | Récupère le nombre d’éléments de l’objet observable_map_base . |
Iterators
Une observable_map_base est une plage et cette plage est définie par des fonctions libres internes (chacune d’elles récupère un itérateur) compatibles avec les fonctionnalités de langage standard. En raison de cela, vous pouvez énumérer les éléments d’un objet observable_map_base avec une instruction basée sur for
une plage.
Vous pouvez également récupérer un IIterator à partir de la fonction observable_map_base:First et l’utiliser pour itérer dans les éléments d’un objet 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();
}
observable_map_base::Clear, fonction
Supprime tous les éléments de l’objet observable_map_base .
Syntax
void Clear() noexcept;
observable_map_base::First, fonction
Récupère un IIterator représentant le premier élément de l’objet observable_map_base .
Syntaxe
auto First();
Valeur de retour
IIterator représentant le premier élément de l’objet observable_map_base.
observable_map_base::GetView, fonction
Récupère une vue immuable de l’objet observable_map_base .
Syntaxe
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Valeur de retour
IMapView contenant une vue immuable du observable_map_base.
observable_map_base::HasKey, fonction
Détermine si la clé spécifiée appartient à un élément de l’objet observable_map_base .
Syntaxe
bool HasKey(K const& key) const noexcept;
Paramètres
key
Clé à rechercher.
Valeur retournée
true
si un élément contenant la clé est trouvé, sinon false
.
observable_map_base::Insert, fonction
Insère ou met à jour un élément dans l’objet observable_map_base .
Syntaxe
bool Insert(K const& key, V const& value);
Paramètres
key
Clé associée à l’élément à insérer ou à mettre à jour.
value
Valeur à insérer ou remplacer.
Valeur retournée
true
si un élément avec la clé spécifiée a été trouvé et mis à jour; sinon false
.
observable_map_base::Lookup, fonction
Recherche l’élément identifié par la clé spécifiée et récupère la valeur correspondante.
Syntaxe
V Lookup(K const& key) const;
Paramètres
key
Clé à rechercher.
Valeur retournée
Valeur correspondant à la clé recherchée si elle est trouvée, sinon une exception winrt::hresult_out_of_bounds est levée.
observable_vector_base::MapChanged, fonction
Inscrit et/ou révoque un délégué qui gère l’événement map-change de l’objet observable_map_base .
Syntaxe
// 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
Valeur de retour
Soit void
, un winrt::event_token avec lequel vous pouvez révoquer un délégué inscrit ou un MapChanged_revoker (alias de type pour un winrt::event_revoker< IObservableMapK<, V>>) avec lequel vous pouvez révoquer un délégué inscrit.
Exemple
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, fonction
Supprime un élément de l’objet observable_map_base .
Syntaxe
void Remove(K const& key);
Paramètres
key
Clé associée à l’élément à supprimer.
observable_map_base:Size, fonction
Récupère le nombre d’éléments de l’objet observable_map_base .
Syntaxe
uint32_t Size() const noexcept;
Valeur de retour
Valeur représentant le nombre d’éléments de l’objet observable_map_base .