Bir wpf C# uygulamasına sahibim.Gözatıcalık kutusunun Gözlemlenebilir Bir Veritabanına Bağlanması
Bir açılan kutu kullanıyorum ve itemsource özelliğini gözlemlenebilir bir koleksiyona ayarladım.
Sahip olduğum sorun şu ki, bu koleksiyonu değiştirdiğimde değişiklikler benim açılmamamda yansıtılmıyor.
Yani neyi yanlış yaptığımı merak ediyorum?
ActiveState.JobsActive = new ObservableCollection<JobTicker>('data from a list');
toplama değişkenin benim beyanı
:
public static ObservableCollection<JobTicker> JobsActive = new ObservableCollection<JobTicker>();
My açılan Kutusu (I koleksiyonuma bağlanan
public class JobTicker
{
public string CustomerRef { get; set; }
public string JobRef { get; set; }
public int JobId { get; set; }
public string CustomerJobDetails { get; set; }
public string CustomerName { get; set; }
}
:
Bu benim sınıf nesnesidir benim app başlatıldığında yüklü olan bir userControl On)
geride<xctk:WatermarkComboBox x:Name="cboActiveJobs" Grid.Row="1" Grid.Column="2"
Width="250" Watermark="Select Customer"
DisplayMemberPath="CustomerJobDetails"
HorizontalContentAlignment="Center"
SelectionChanged="cbo_SelectionChanged"
DropDownOpened="cbo_DropDownOpened"
DropDownClosed="cbo_DropDownClosed"
Style="{StaticResource ComboBoxFlatStyle}"
/>
ve benim kod: Ben değiştirirseniz
cboActiveJobs.ItemsSource = ActiveState.JobsActive;
Şimdi 'ActiveState.JobsActive' ı değişikliklerin benim açılan yansıtılması beklenir ama değiller.
bu çok açıklayacaktır. Teşekkür ederim :) –
Bir VM uygulamak için bakmak zorundayım. Gördüğünüzde bu benim için biliyor. –
@AndrewSimpson Ah, evet. WPF'nin çoğu, görünüm modelinden özellikleri birleştirmeye başladığınızda çok daha anlamlı olacaktır. Çok fazla değil: [INotifyPropertyChanged] uygulamasını uygulayın (https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged (v = vs.110).aspx) ve yangın bildirimleri uygun şekilde. Kullanıcı Arabirimi tarafından tüketilecek koleksiyonlar için, zaten kullanmakta olduğunuz ObservableCollection jenerikini kullanın. –