2009-04-14 15 views
5

Tümünün, aynı türden farklı seçimleri temsil eden bir onay kutularına sahibim (örneğim, hepsi farklı dosya türleridir). Her birinin ViewModel'deki tek bir özelliğe bağlanma sıkıntısı olduğunu düşünüyorum ve hepsini bir koleksiyona bağlamayı tercih ediyorum ve her bir onay kutusunu anahtar ile koleksiyondaki belirli bir öğeye bağlamak için bağlayıcı sözdizimini kullanın. MVVM modeline bağlı kalmaya çalışıyorum, bu yüzden sadece tembel olmak ve Checked olayını veya bunun gibi bir şeyi ele almak istemiyorum.WPF MVVM Ciltleme Checkbox.IsCh Sözlük'teki bir adlandırılmış öğeye denetleniyor <string, bool>

WPF bağlama sözdizimini kullanarak bir koleksiyon içinde bir yolu veya anahtarı ifade etmenin bir yolu var mı? Örneğin, ViewModel'de bir ortak özellik olarak FileTypes adlı bir Dictionary<string, bool> ifşa edersem, onay kutularından birini FileTypes ["aspx"] için bağlamamın bir yolu var mı? Dictionary<string, Dictionary<string, int>> gibi daha karmaşık bir veri yapısına sahip olsaydım ne olurdu?

cevap

3

Neredeyse vardı - sadece dizin argüman etrafında tırnak düşmesi: Daha karmaşık veri yapısı Dizinleyicilere dizisi gerektiren sadece ediyorum

{Binding FileTypes[aspx]} 

, mesela Bu arada

{Binding Foo[aspx][Bar]} 

bu tür şeyler için iyi bir kaynak WPF altında MSDN'ndaki olduğunu> Veri> Veri Bağlama> Beyannameler Bakış Bağlama - "Yol dizimi Bağlama" na inin gösterimler ve sözleşmelerin özeti için ciltleme yolunda kullanabilirsiniz.