C# Listboxları aynı anda nasıl hareket ettirebilirim?

saliholoji

Kilopat
Katılım
7 Mayıs 2020
Mesajlar
887
Çözümler
38
Yer
Mersin
Daha fazla  
Cinsiyet
Erkek
Meslek
Yazılım Geliştirme Uzmanlığı, Proje Genel Koordinatörlüğü
Merhaba Dostlar,

Aynı item sayısına sahip mevcut 3 tane listbox'm var, aynı anda bir birlerinin indexini seçebiliyorlar lakin scroll ile veritcal(aşağı-yukarı yönde) hareket ettirdiğimde diğerleri de aynı hareketi yapmasını istiyorum, nasıl yapabilirim? Stackoverflow'da bulamadım sanırım.
 
Son düzenleyen: Moderatör:
C#:
public Visual GetDescendantByType(Visual element, Type type)
{
    if (element == null) return null;
        if (element.GetType() == type) return element;
            Visual foundElement = null;
        if (element is FrameworkElement)
        {
            (element as FrameworkElement).ApplyTemplate();
        }
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++)
        {
            Visual visual = VisualTreeHelper.GetChild(element, i) as Visual;
            foundElement = GetDescendantByType(visual, type);
            if (foundElement != null)
            break;
        }
        return foundElement;
}

private void listbox1_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ScrollViewer ScrollViewer1 = GetDescendantByType(listbox1, typeof(ScrollViewer)) as ScrollViewer;
    ScrollViewer ScrollViewer2 = GetDescendantByType(listbox2, typeof(ScrollViewer)) as ScrollViewer;
    ScrollViewer2.ScrollToVerticalOffset(ScrollViewer1.VerticalOffset);
}
 
Son düzenleme:
C#:
public Visual GetDescendantByType(Visual element, Type type)
{
    if (element == null) return null;
        if (element.GetType() == type) return element;
            Visual foundElement = null;
        if (element is FrameworkElement)
        {
            (element as FrameworkElement).ApplyTemplate();
        }
        for (int i = 0; i < VisualTreeHelper.GetChildrenCount(element); i++)
        {
            Visual visual = VisualTreeHelper.GetChild(element, i) as Visual;
            foundElement = GetDescendantByType(visual, type);
            if (foundElement != null)
            break;
        }
        return foundElement;
}

private void listbox1_ScrollChanged(object sender, ScrollChangedEventArgs e)
{
    ScrollViewer ScrollViewer1 = GetDescendantByType(listbox1, typeof(ScrollViewer)) as ScrollViewer;
    ScrollViewer ScrollViewer2 = GetDescendantByType(listbox2, typeof(ScrollViewer)) as ScrollViewer;
    ScrollViewer2.ScrollToVerticalOffset(ScrollViewer1.VerticalOffset);
}
Tam olarak nereye yazmam gerekli :)
 
GetDescendantByType fonksiyonunu doğrudan sınıfa ekle, alttaki fonksiyon içeriği adından da anlaşılacağı üzere Listbox'un ScrollChanged olayına yazılacak. (içeriği kendine göre editlersin.)
Öyle bi' event göremiyorum ben maalesef..
 

Technopat Haberler

Yeni konular

Yeni mesajlar

Geri
Yukarı