Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk selamat melemparkan generik ke generik di WPF?

Bagaimana untuk selamat melemparkan generik ke generik di WPF?

Mary-Kate Olsen
Lepaskan: 2025-01-28 18:41:09
asal
825 orang telah melayarinya

How to Safely Cast Generic to Generic in WPF?

Teknik menukarkan generik ke dalam generik dengan selamat di WPF

Dalam WPF, ia adalah kaedah yang biasa untuk membuat kawalan pengguna asas yang menyediakan fungsi perkongsian kawalan pengguna yang diperolehi. Untuk memastikan fungsi ini diakses dari keadaan yang diperolehi, acara ini biasanya dipanggil dalam kod tersembunyi yang tersembunyi dari kawalan pengguna yang diperolehi, contohnya:

Walau bagaimanapun, kaedah pengendali kawalan pengguna asas mungkin memerlukan jenis parameter tertentu:
<code class="language-csharp">private void SomeClick(object sender, RoutedEventArgs e) {
    HandleClick(sender);
    MyDataGrid.Items.Refresh();
}</code>
Salin selepas log masuk

Jika DataContext dalam kawalan pengguna yang diperolehi diperolehi, seperti BaseViewModel & lt; Ini kerana DataContext tidak boleh ditukar secara langsung kepada BaseViewModel & LT;
<code class="language-csharp">public class BaseUserControl : UserControl {
    protected void HandleClick(object sender) {
        var vm = (BaseViewModel<零件>)DataContext;
        ...
    }
}</code>
Salin selepas log masuk

Kenapa kita tidak boleh menukar generik & lt;

dilarang untuk menukar generik & lt; Bayangkan, tukar & lt; Anda kemudian boleh menambah objek domba untuk menyenaraikan & lt; alternatif

Untuk menyelesaikan masalah ini, penyelesaian alternatif berikut boleh dipertimbangkan:

menggunakan antara muka dan bukannya generik untuk menentukan kontrak yang mesti dilaksanakan DataContext.

menggunakan antara muka kolaboratif atau penyongsang untuk secara paksa membaca hanya jenis generik.

    warisan melalui generik, mewarisi kelas berasaskan diri dan merealisasikan fungsi khususnya sendiri.

Atas ialah kandungan terperinci Bagaimana untuk selamat melemparkan generik ke generik di WPF?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan