winrt::observable_map_base templat struct (C++/WinRT))
Kelas dasar tempat Anda dapat memperoleh untuk mengimplementasikan koleksi asosiatif kustom Anda sendiri yang dapat diamati. Untuk informasi selengkapnya, dan contoh kode, lihat Koleksi dengan C++/WinRT.
Sintaks
template <typename D, typename K, typename V>
struct observable_map_base : map_base<D, K, V>
Parameter templat
typename D
Nama jenis turunan Anda.
typename K
Jenis kunci dalam koleksi.
typename V
Jenis nilai dalam koleksi.
Persyaratan
SDK minimum yang didukung: Windows SDK versi 10.0.17763.0 (Windows 10, versi 1809)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (disertakan secara default)
Fungsi anggota
Fungsi | Deskripsi |
---|---|
observable_map_base::Clear function | Menghapus semua elemen dari objek observable_map_base . |
observable_map_base::Fungsi pertama | Mengambil IIterator yang mewakili elemen pertama dalam objek observable_map_base . |
observable_map_base::Fungsi GetView | Mengambil tampilan objek observable_map_base yang tidak dapat diubah. |
observable_map_base::HasKey (Fungsi HasKey) | Menentukan apakah kunci yang ditentukan milik elemen dalam objek observable_map_base . |
observable_map_base::Sisipkan fungsi | Menyisipkan atau memperbarui elemen dalam objek observable_map_base . |
observable_map_base::Fungsi pencarian | Mencari elemen yang diidentifikasi oleh kunci yang ditentukan, dan mengambil nilai yang sesuai. |
observable_map_base::MapChanged (Fungsi observable_map_base::MapChanged) | Mendaftarkan dan mencabut delegasi yang menangani peristiwa yang diubah peta dari objek observable_map_base . |
observable_map_base::Hapus fungsi | Menghapus elemen dari objek observable_map_base . |
observable_map_base::Fungsi ukuran | Mengambil jumlah elemen dalam objek observable_map_base . |
Iterator
observable_map_base adalah rentang, dan rentang tersebut didefinisikan oleh fungsi bebas internal (yang masing-masing mengambil iterator) yang kompatibel dengan fitur bahasa standar. Karena itu, Anda dapat menghitung elemen dalam objek observable_map_base dengan pernyataan berbasis for
rentang.
Anda juga dapat mengambil IIterator dari fungsi observable_map_base::First , dan menggunakannya untuk melakukan iterasi melalui elemen dalam objek 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 function
Menghapus semua elemen dari objek observable_map_base .
Sintaks
void Clear() noexcept;
observable_map_base::Fungsi pertama
Mengambil IIterator yang mewakili elemen pertama dalam objek observable_map_base .
Sintaks
auto First();
Mengembalikan nilai
IIterator yang mewakili elemen pertama dalam objek observable_map_base.
observable_map_base::Fungsi GetView
Mengambil tampilan objek observable_map_base yang tidak dapat diubah.
Sintaks
winrt::Windows::Foundation::Collections::IMapView<K, V> GetView() const;
Mengembalikan nilai
IMapView yang berisi tampilan observable_map_base yang tidak dapat diubah.
observable_map_base::HasKey (Fungsi HasKey)
Menentukan apakah kunci yang ditentukan milik elemen dalam objek observable_map_base .
Sintaks
bool HasKey(K const& key) const noexcept;
Parameter
key
Kunci yang harus dicari.
Mengembalikan nilai
true
jika elemen yang berisi kunci ditemukan, jika tidak false
.
observable_map_base::Sisipkan fungsi
Menyisipkan atau memperbarui elemen dalam objek observable_map_base .
Sintaks
bool Insert(K const& key, V const& value);
Parameter
key
Kunci yang terkait dengan elemen untuk disisipkan atau diperbarui.
value
Nilai yang akan disisipkan atau diganti.
Mengembalikan nilai
true
jika elemen dengan kunci yang ditentukan ditemukan dan diperbarui; jika tidak false
.
observable_map_base::Fungsi pencarian
Mencari elemen yang diidentifikasi oleh kunci yang ditentukan, dan mengambil nilai yang sesuai.
Sintaks
V Lookup(K const& key) const;
Parameter
key
Kunci untuk mencari.
Mengembalikan nilai
Nilai yang sesuai dengan kunci yang sedang dicari jika ditemukan, jika tidak, pengecualian winrt::hresult_out_of_bounds dilemparkan.
observable_vector_base::MapChanged
Mendaftar dan/atau mencabut delegasi yang menangani peristiwa yang diubah peta dari objek observable_map_base .
Sintaks
// 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
Mengembalikan nilai
Baik void
, winrt::event_token yang dapat Anda cabut delegasi terdaftar, atau MapChanged_revoker (alias jenis untuk winrt::event_revoker<IObservableMap<K, V>>) tempat Anda dapat mencabut delegasi terdaftar.
Contoh
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::Hapus fungsi
Menghapus elemen dari objek observable_map_base .
Sintaks
void Remove(K const& key);
Parameter
key
Kunci yang terkait dengan elemen yang akan dihapus.
observable_map_base::Fungsi ukuran
Mengambil jumlah elemen dalam objek observable_map_base .
Sintaks
uint32_t Size() const noexcept;
Mengembalikan nilai
Nilai yang menunjukkan jumlah elemen dalam objek observable_map_base .