Rumah > pembangunan bahagian belakang > C++ > Bagaimana untuk Mengakses Kawalan dalam XAML DataTemplates dalam FlipView?

Bagaimana untuk Mengakses Kawalan dalam XAML DataTemplates dalam FlipView?

Susan Sarandon
Lepaskan: 2025-01-07 15:42:40
asal
953 orang telah melayarinya

Mengakses Kawalan dalam Templat Data XAML dalam FlipView

Templat data memperkemas pemaparan item dalam XAML, tetapi mengakses kawalan dalaman memberikan cabaran kerana pemisahan pokok visual dan logik. Sifat Name tidak boleh digunakan secara langsung dalam FlipView's DataTemplate kerana kemungkinan konflik penamaan merentas berbilang tika templat.

Penyelesaian terletak pada penggunaan VisualTreeHelper untuk melintasi pepohon visual dan mencari kawalan khusus dalam setiap item yang dijana.

Fungsi Pembantu:

Fungsi ini secara rekursif mencari pepohon visual untuk kawalan dengan nama yang diberikan:

<code class="language-csharp">public T FindChildControl<T>(DependencyObject control, string ctrlName) where T : DependencyObject
{
    int childNumber = VisualTreeHelper.GetChildrenCount(control);
    for (int i = 0; i < childNumber; i++)
    {
        DependencyObject child = VisualTreeHelper.GetChild(control, i);
        FrameworkElement fe = child as FrameworkElement;
        if (fe != null && fe.Name == ctrlName)
        {
            return child as T;
        }
        else
        {
            T nextLevel = FindChildControl<T>(child, ctrlName);
            if (nextLevel != null)
                return nextLevel;
        }
    }
    return null;
}</code>
Salin selepas log masuk

Mengakses Kawalan:

Untuk mendapatkan semula kawalan (cth., Image bernama "img1") daripada item FlipView yang sedang dipilih, gunakan kod ini:

<code class="language-csharp">var selectedItem = MyFlipView.SelectedItem;
if (selectedItem == null)
    return null;

var container = MyFlipView.ItemContainerGenerator.ContainerFromItem(selectedItem);
Image img1 = FindChildControl<Image>(container, "img1");</code>
Salin selepas log masuk

Ini mendapatkan semula kawalan Image. Ingat untuk mengendalikan kes null jika kawalan tidak ditemui.

How to Access Controls within XAML DataTemplates in a FlipView?

Atas ialah kandungan terperinci Bagaimana untuk Mengakses Kawalan dalam XAML DataTemplates dalam FlipView?. 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