winrt::observable_vector_base struct template (C++/WinRT)
Kelas dasar tempat Anda dapat memperoleh untuk mengimplementasikan vektor kustom Anda sendiri yang dapat diamati. Untuk informasi selengkapnya, dan contoh kode, lihat Koleksi dengan C++/WinRT.
Sintaks
template <typename D, typename T>
struct observable_vector_base : vector_base<D, T>
Parameter templat
typename D
Nama jenis turunan Anda.
typename T
Jenis elemen dalam observable_vector_base.
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_vector_base::Tambahkan fungsi | Menambahkan elemen ke akhir objek observable_vector_base . |
observable_vector_base::Clear function | Menghapus semua elemen dari objek observable_vector_base . |
observable_vector_base::Fungsi pertama | Mengambil IIterator yang mewakili elemen pertama dalam objek observable_vector_base . |
observable_vector_base::Fungsi GetAt | Mengambil elemen pada indeks yang ditentukan dalam objek observable_vector_base . |
observable_vector_base::GetMany (Fungsi getMany) | Mengambil kumpulan elemen dalam objek observable_vector_base yang dimulai pada indeks yang diberikan. |
observable_vector_base::Fungsi GetView | Mengambil tampilan objek observable_vector_base yang tidak dapat diubah. |
fungsi observable_vector_base::IndexOf | Mengambil indeks elemen tertentu dalam objek observable_vector_base . |
observable_vector_base::InsertAt (Fungsi insertAt) | Menyisipkan elemen pada indeks yang ditentukan dalam objek observable_vector_base . |
observable_vector_base::RemoveAt (Fungsi RemoveAt) | Menghapus elemen pada indeks yang ditentukan dalam objek observable_vector_base . |
observable_vector_base::RemoveAtEnd (Fungsi RemoveAtEnd) | Menghapus elemen terakhir dari objek observable_vector_base . |
observable_vector_base::ReplaceAll function | Mengganti semua elemen dalam objek observable_vector_base dengan elemen yang ditentukan. |
fungsi observable_vector_base::SetAt | Mengatur nilai elemen pada indeks yang ditentukan dalam objek observable_vector_base . |
observable_vector_base::Fungsi ukuran | Mengambil jumlah elemen dalam objek observable_vector_base . |
observable_vector_base::VectorChanged | Mendaftarkan dan mencabut delegasi yang menangani peristiwa yang diubah vektor dari objek observable_vector_base . |
Iterator
observable_vector_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_vector_base dengan pernyataan berbasis for
rentang.
Anda juga dapat mengambil IIterator dari fungsi observable_vector_base::First , dan menggunakannya untuk melakukan iterasi melalui elemen dalam objek observable_vector_base .
...
#include <iostream>
using namespace winrt;
using namespace Windows::Foundation::Collections;
...
struct MyObservableVector :
implements<MyObservableVector, IObservableVector<float>, IVector<float>, IVectorView<float>, IIterable<float>>,
winrt::observable_vector_base<MyObservableVector, float>
{
auto& get_container() const noexcept
{
return m_values;
}
auto& get_container() noexcept
{
return m_values;
}
private:
std::vector<float> m_values{ 0.1f, 0.2f, 0.3f };
};
...
IObservableVector<float> coll{ winrt::make<MyObservableVector>() };
for (auto const& el : coll)
{
std::wcout << el << std::endl;
}
IIterator<float> it{ coll.First() };
while (it.HasCurrent())
{
std::wcout << it.Current() << std::endl;
it.MoveNext();
}
observable_vector_base::Tambahkan fungsi
Menambahkan elemen ke akhir objek observable_vector_base .
Sintaks
void Append(T const& value);
Parameter
value
Elemen yang akan ditambahkan.
observable_vector_base::Clear function
Menghapus semua elemen dari objek observable_vector_base .
Sintaks
void Clear() noexcept;
observable_vector_base::Fungsi pertama
Mengambil IIterator yang mewakili elemen pertama dalam objek observable_vector_base .
Sintaks
auto First();
Mengembalikan nilai
IIterator yang mewakili elemen pertama dalam objek observable_vector_base.
observable_vector_base::Fungsi GetAt
Mengambil elemen pada indeks yang ditentukan dalam objek observable_vector_base .
Sintaks
T GetAt(uint32_t const index) const;
Parameter
index
Indeks elemen berbasis nol.
Mengembalikan nilai
Elemen pada indeks yang ditentukan dalam objek observable_vector_base .
observable_vector_base::GetMany (Fungsi getMany)
Mengambil kumpulan elemen dalam objek observable_vector_base yang dimulai pada indeks yang diberikan.
Sintaks
uint32_t GetMany(uint32_t const startIndex, array_view<T> values) const;
Parameter
startIndex
Indeks elemen berbasis nol untuk memulai.
values
Array_view untuk menyalin item.
Mengembalikan nilai
Nilai yang menunjukkan jumlah elemen yang diambil.
observable_vector_base::Fungsi GetView
Mengambil tampilan objek observable_vector_base yang tidak dapat diubah.
Sintaks
winrt::Windows::Foundation::Collections::IVectorView<T> GetView() const noexcept;
Mengembalikan nilai
IVectorView yang berisi tampilan observable_vector_base yang tidak dapat diubah.
fungsi observable_vector_base::IndexOf
Mengambil indeks elemen tertentu dalam objek observable_vector_base .
Sintaks
bool IndexOf(T const& value, uint32_t& index) const noexcept;
Parameter
value
Elemen , dalam objek observable_vector_base , untuk mencari .
index
Indeks berbasis nol dari elemen jika elemen ditemukan, jika tidak, jumlah elemen dalam objek observable_vector_base .
Mengembalikan nilai
true
jika elemen ditemukan, jika tidak false
.
observable_vector_base::InsertAt (Fungsi insertAt)
Menyisipkan elemen pada indeks yang ditentukan dalam objek observable_vector_base .
Sintaks
void InsertAt(uint32_t const index, T const& value);
Parameter
index
Indeks berbasis nol untuk menyisipkan elemen.
value
Elemen yang akan disisipkan.
observable_vector_base::RemoveAt (Fungsi RemoveAt)
Menghapus elemen pada indeks yang ditentukan dalam objek observable_vector_base .
Sintaks
void RemoveAt(uint32_t const index);
Parameter
index
Indeks berbasis nol dari elemen yang akan dihapus.
observable_vector_base::RemoveAtEnd (Fungsi RemoveAtEnd)
Menghapus elemen terakhir dari objek observable_vector_base .
Sintaks
void RemoveAtEnd();
observable_vector_base::ReplaceAll function
Mengganti semua elemen dalam objek observable_vector_base dengan elemen yang ditentukan.
Sintaks
void ReplaceAll(array_view<T const> value);
Parameter
value
Array_view yang berisi elemen baru.
fungsi observable_vector_base::SetAt
Mengatur nilai elemen pada indeks yang ditentukan dalam objek observable_vector_base .
Sintaks
void SetAt(uint32_t const index, T const& value);
Parameter
index
Indeks berbasis nol dari elemen yang nilainya akan ditetapkan.
value
Nilai elemen yang akan diatur.
observable_vector_base::Fungsi ukuran
Mengambil jumlah elemen dalam objek observable_vector_base .
Sintaks
uint32_t Size() const noexcept;
Mengembalikan nilai
Nilai yang menunjukkan jumlah elemen dalam objek observable_vector_base .
observable_vector_base::VectorChanged (Fungsi observable_vector_base::VectorChanged)
Mendaftarkan dan/atau mencabut delegasi yang menangani peristiwa yang diubah vektor objek observable_vector_base .
Sintaks
// Register
winrt::event_token VectorChanged(winrt::Windows::Foundation::Collections::VectorChangedEventHandler<T> const& handler);
// Revoke with event_token
void VectorChanged(winrt::event_token const cookie);
// Revoke with event_revoker
VectorChanged_revoker VectorChanged(winrt::auto_revoke_t, winrt::Windows::Foundation::Collections::VectorChangedEventHandler<T> const& handler) const;
Mengembalikan nilai
Baik void
, winrt::event_token tempat Anda dapat mencabut delegasi terdaftar, atau VectorChanged_revoker (alias jenis untuk winrt::event_revoker<IObservableVector<T>>) tempat Anda dapat mencabut delegasi terdaftar.
Contoh
winrt::event_revoker<IObservableVector<float>> m_event_revoker;
...
m_event_revoker = coll.VectorChanged(winrt::auto_revoke, [this](IObservableVector<float> const&, IVectorChangedEventArgs const&)
{
...
});