我有一個wpf c#應用程序。將組合框綁定到ObservableCollection
我正在使用組合框,並將其itemsource屬性設置爲可觀察集合。
我遇到的問題是,當我修改此集合時,更改不會反映在我的下拉列表中。
所以我想知道我做錯了什麼?
這是我的類對象:
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; }
}
我綁定到我的收藏:
ActiveState.JobsActive = new ObservableCollection<JobTicker>('data from a list');
我收集變量聲明:
public static ObservableCollection<JobTicker> JobsActive = new ObservableCollection<JobTicker>();
我的組合框(這是在我的應用程序啓動時加載的我的用戶控件)
<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}"
/>
和我的代碼背後:
cboActiveJobs.ItemsSource = ActiveState.JobsActive;
現在,如果我修改「ActiveState.JobsActive」我希望反映在我的下拉變化,但事實並非如此。
這會解釋很多。謝謝:) –
我將不得不考慮實現一個虛擬機。這在你看到的wpf中是知道的。 –
@AndrewSimpson啊,是的。一旦你開始從視圖模型綁定屬性,大多數WPF將變得更有意義。對此沒什麼要求:實現[INotifyPropertyChanged](https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v = vs.110)。aspx)並適當地啓動通知。對於將要由UI使用的集合,請使用您已經使用的ObservableCollection泛型。 –