2011-04-01 12 views
15

Kılavuzum için tanımlanmış çok sayıda stil var (hücre renkleri vb.). Şu anda uygun renkleri ayarlamak için DataTriggers kullanıyorum. Uygulamamın performansını artırmaya çalışıyorum ve çok sayıda stilin yavaşlamaya neden olabileceğini düşünüyordum (sürekli değişen veriler ve yeniden hesaplanan/yenilenmesi gereken stiller nedeniyle). DataTriggers yerine dönüştürücülerle veri bağlama kullanmak daha iyi midir?DataTrigger vs dönüştürücü performansıyla veri paylaşımı

Her iki yöntemle de hedefe ulaşılabiliyorsa, herhangi bir performans farkı var mı? Sahnelerin arkasında neler olup bittiğine aşina değilim ki emin olamam. this episode of the Hanselminutes podcast yılında

cevap

13

, misafir Laurent Bugnion (MVVM Işık yaratıcısı) dönüştürücüler kullanarak ilişkili bir performans isabet olduğunu açıklar. Masaüstü uygulamalarında neredeyse her zaman ihmal edilebilir olduğunu, ancak WP7 uygulamalarında, özellikle liste sanallaştırmasıyla uğraşırsa, büyük ölçüde dönüştürücülere güvenmek yerine, görünüm modelllerinin fırça gibi şeyleri doğrudan ortaya çıkarması önerilir; dönüşümün başlatılması. (Bu değişikliği yaptıysanız veya dönüşümleri)

Benzer bir şey senaryosunda cereyan olması mümkündür, sadece tetikleyici hacmini verilen.

Kavramın bir kanıtı olarak, görünüm modelinizi, renklerin ve diğer WPF'ye özgü değerlerin kendilerinin ortaya çıkardığı bir "WPF Viewmodel" dosyasına sarmayı düşünebilirsiniz; Tetikleyicileri çağırmak için çalışma zamanı ve IValueConverters. Daha sonra doğrudan buna bağlanabilecek ve ne tetikleyici ne de dönüştürücü kullanamazsınız. Sonuçları duymak isterim.