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

Geri
Yukarı