2011-08-04 20 views
7

El ile doldurduğum ve sıralı kalmasını istediğim TreeView üzerinde bir düğüm var. Kullanıcı etkileşimi sayesinde TreeViewItem'in üstbilgileri değişebilir ve listedeki uygun noktaya taşınmalıdır.WPF bir TreeView listesini saklama sıralanmış

Çok sayıda TreeViewItem'i oluşturmak ve bunları bir ana düğüme eklemek için bir foreach aracılığıyla yineliyorum. Sıralanması gereken çocukların hepsi bu. Sonra bir SortDescription'ı aşağıdaki gibi eklerim.

tviParent.Items.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); 

Bu İntial listesini sıralar ama ağaç görünümü öğelerinden biri için başlığını değiştirirseniz o madde sıralamak tekrar etmez görüntülenmesinden sonra. Başlık metni değişir, ancak listedeki öğeler konumu aynı kalır.

Eksik olduğum bir şey var mı?

Listeyi temizlemeyi ve yeniden çalışmayı denedim, bu da çalışacak, ancak seçilen öğenin değişmesi için birçok mantığa sahip olduğum için ve programdaki ağaç görünümü öğelerinden biri olduğundan, programımda bazı isimlere neden oluyor. temizlediğim liste seçildiğinde listeyi temizlediğimde bu mantığın tümünü çağırır ve daha sonra listeyi yeniden oluşturduktan sonra öğeyi programla yeniden seçtiğimde tekrar çağırır. Yukarıdaki kod sonra işe deneyin olmazsa

cevap

12

ürün toplama ....

başlık düzenleme sonrasında aşağıdaki kodu deneyin mallarının yapılan değişikliklerle yenilenmesi

tviParent.Items.Refresh(); 

olacak Her düzenleme sonrasında aşağıdaki kod ...

tviParent.Items.SortDescriptions.Clear() 
    tviParent.Items.SortDescriptions.Add(new SortDescription("Header", ListSortDirection.Ascending)); 
+0

İkinci seçenek işe yaradı, teşekkürler. – WPFNewbie

+0

Sevindim Yardımcı olabilirim. –

+0

Sağladığınız ikinci seçenek, CheckBox'ları içeren TreeView'ım için çalıştı. Teşekkürler! –

İlgili konular