Herkese selam
Bir öğeler listesi için bir databound olan bir combobox var. Ama bu elemanlar listesine ek olarak, başka bir öğeye sahip olmak istiyorum. Bu öğe 'Yeni ...' metnini görüntülemelidir '
Fikir, normal elemanlardan birini seçerse, o unsuru içeren bazı eylemleri gerçekleştirir. 'Yeni' öğesini seçerlerse, yeni bir öğe oluşturabilecekleri bir ekrana götürürler.
Bir şey databind zaman sorun, ona başka bir öğe ekleme seçeneği do not get ve elementlerin listesine bir kukla öğe ekleyerek söz konusu değildir ... Databound WPF ComboBox 'Yeni ...' ile
cevap
Bunu yapmak için, daha önce normal değerler için bir kukla sarmalayıcı sınıfı oluşturdum ve çoğunlukla doğru değerleri içeren bir listeye ve "Yeni. .. "bir, örneğin
public class DisplayClass
{
public DisplayClass(ModelClass mc)
{
this.mc = mc;
}
public string Name
{
get { return this.mc != null ? this.mc.Name : "New..."; }
}
public bool IsDummy
{
return this.mc == null;
}
public ModelClass Model
{
return this.mc;
}
}
Ardından veri bağlamında (ViewModel) bu koleksiyonu barındırabilir ve uygun IsDummy
dayalı seçim işleyebilir. Bu işleve sahip bir kontrol olarak otomatik değil, ama oldukça basit ve muhtemelen kolayca jenerik ve yeniden kullanılabilir hale getirilebilir.
Bağladığınız şeyin, iş veya veri varlıklarından farklı olabilecek kullanıcı arabirimi odaklı öğelerden oluşan bir koleksiyon olduğunu unutmayın.
Yerinde olsaydım, bağlı koleksiyonun ilk konumuna bir 'yeni' varlık eklerim ve onu seçtiğinde uygun eylemi tetiklemek için onu viewmodelimde algılardım.
ItemsSource özelliğini, yeni öğe ve ciltli toplama ile birlikte CompositeCollection'a ayarlayın, sonra o öğenin seçimini, seçilen dizine veya benzer bir öğeye göre algılayın.
Örnek Kod: CompositeCollection için
<ComboBox>
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem>Add New Item...</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource CollectionSource}}"/>
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
MSDN: http://msdn.microsoft.com/en-us/library/system.windows.data.compositecollection(v=vs.110).aspx
Harika cevap. Teşekkürler. –
- 1. WPF Databound Madde İşaretli Liste
- 2. WPF ComboBox Bağlama Değişkeni
- 3. WPF ListView Databound Sürükle/Bırak Otomatik Kaydırma
- 4. WPF ComboBox MaxDropDownItems
- 5. WPF Bağlama ComboBox ViewModel'e
- 6. Stil WPF ComboBox öğeleri
- 7. WPF ciltleme ComboBox enum'a (bir twist ile)
- 8. WPF 2 ComboBox bağlama sorunu
- 9. WPF ComboBox sıfırlar madde kaynaklı
- 10. WPF: Açma düğmesi olmayan ComboBox
- 11. C# WPF comboBox garip sayı
- 12. Wpf combobox seçili değeri alın
- 13. xpl'de nasıl wpf combobox doldurulur
- 14. WPF - Combobox SelectedItem ayarlanmıyor mu?
- 15. WPF Düzenlenebilir Combobox IsFocused problem
- 16. C# Garip WPF Combobox Davranışı
- 17. Onay kutuları ile bir WPF ComboBox mi arıyorsunuz?
- 18. WPF ComboBox Öğesi Bir dize koleksiyonuna etiketleme
- 19. ComboBox SelectedValue veya SelectedItem Binding WPF C#
- 20. WPF ComboBox ... .text özelliği nasıl ayarlanır?
- 21. Yeni değerleri kabul etmeden bir ComboBox araması
- 22. İkinci ComboBox
- 23. combobox
- 24. Combobox,
- 25. WPF Combobox: Uzunluğa sahip metin girilmeye çalışıldığında sınırların dışında imleç> combobox width
- 26. databound dropdownlist bir öğe seç
- 27. WPF DataGrid için hücre düzeyi ComboBox nasıl alınır?
- 28. ComboBox Öğeleri İle Gizli Kimlik?
- 29. Özel ComboBox fare ile seçilmiyor?
- 30. ComboBox Scene Builder ile Öğeler?
Bu senin ve VC cevapları temelde aynı olduğundan ... Onun zor benim kriterleri yerine getirme gibi görünüyor, ama bir kez bu alacağım bir örnek olduğu için – TerrorAustralis
Endişeye gerek yok, bir cevap bulduğuna sevindim sevindim –