Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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&)
{
...
});