私はwpf c#アプリケーションを持っています。ObservableCollectionにコンボボックスをバインドする
私はコンボボックスを使用しており、itemsourceプロパティをobservableコレクションに設定しています。
私が持っている問題は、このコレクションを変更すると、変更がドロップダウンに反映されないということです。
私は何が間違っているのだろうか?
これは私のクラスのオブジェクトです:
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>();
マイコンボボックス(あります私のアプリの起動時に読み込まれる私のuserControlで)
<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」を変更した場合、私は変化が私のドロップダウンに反映されることを期待するだろうが、そうではありません。
これは多く説明します。ありがとうございました:) –
私はVMの実装を見なければならないでしょう。これはあなたが見るwpfの私のために知っている。 –
@AndrewSimpsonああ、そうです。 WPFのほとんどは、ビューモデルからプロパティをバインドすると、はるかに意味があります。それほど多くはありません:実装[INotifyPropertyChanged](https://msdn.microsoft.com/en-us/library/system.componentmodel.inotifypropertychanged(v = vs.110)。aspx)と火災報知を適切に行います。 UIで消費されるコレクションについては、すでに使用しているObservableCollectionジェネリックを使用してください。おかげさまで –