SORU
4 ŞUBAT 2011, Cuma


Arasındaki fark Selectedıtem, SelectedValue ve SelectedValuePath

Fark şu: aras

Tüm bu bağımlılık özellikleri Selector sınıfında tanımlanır. Ben sık sık SelectedValue SelectedValuePath SelectedValue SelectedItem karıştırmayın.

Aralarındaki fark, ve aynı zamanda onları ne zaman kullanırız, özellikle SelectedValue SelectedValuePath bilmek istiyorum. Lütfen açıklayınkullanınbasit örnek ile.

CEVAP
4 ŞUBAT 2011, Cuma


İsimleri biraz kafa karıştırıcı olabilir :). İşte özeti:

  • Selectedıtemözellik listesine bağlı tüm nesneyi döndürür. Yani Category nesneleri her Kategori Adı ve KİMLİĞİ özelliklere sahip nesne ile () bir koleksiyon için bir liste bağlı olduğunu söylüyorlar. örn. ObservableCollection<Category>. SelectedItem özelliği seçili ** 10 nesne döndürür. Bağlama amaçlı ancak, bu her zaman istediğin gibi, bu sadece sağlar bağlamak için bütün bir Kategori nesne için özellik listesinde bağlı değil değeri olan bir tek özelliği o Kategoriye nesne (gibi ID özellik).

  • Bu nedenle varSelectedValuePathözellik veSelectedValuealternatif olarak bağlayıcı özellik (birbiri ile birlikte bunları kullanmak) anlamına gelir. Hadi sizin bakış bağlı (Ağırlık, vb ProductName gibi şeyler için özellikleri ile) Product bir nesne var diyelim. Hadi o Ürün de nesne CategoryID bir özelliği var, ve kullanıcı bir kategori listesi Ürün için bir kategori seçmek mümkün olmak istiyorum söylüyorlar. Kategori ID özelliği Ürün nesne üzerinde CategoryID özelliği atanacak nesne gerekir. Bu SelectedValuePath SelectedValue özellikler burada devreye giriyor. Belirttiğiniz KİMLİĞİ mülkiyet Kategori nesne olmalıdır atanan özelliği Ürünle nesne listesi ilişkilidir kullanarak SelectedValuePath='ID' bağlama SelectedValue özellik üzerinde DataContext (örn. Ürün).

Aşağıdaki örnek bunu göstermektedir. Bir ComboBox Kategori listesi (İtemsSource üzerinden) bağlanmış. Seçilen değeri (SelectedValue özelliğini kullanarak) olarak Ürün Categoryıd özelliği bağlayıcı ediyoruz. SelectedValuePath özelliği ile Kategori ID özelliği için bu ilgili değiliz. Ve sadece ComboBox, DisplayMemberPath özelliği ile) Name özelliği ekran söylüyoruz.

<ComboBox ItemsSource="{Binding Categories}" 
          SelectedValue="{Binding CategoryID, Mode=TwoWay}" 
          SelectedValuePath="ID" 
          DisplayMemberPath="Name" />

Başlangıçta biraz kafa karıştırıcı, ama umarım bu biraz daha net yapar... :)

Chris

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ghosti66

    ghosti66

    27 AĞUSTOS 2006
  • Paulo Bautista

    Paulo Bautis

    21 Aralık 2008
  • xCraash

    xCraash

    6 Temmuz 2012