У меня есть приложение wpf C#.Привязка комбинированного блока к наблюдаемому набору
Я использую поле со списком, и я установил свойство 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>();
My Combo Box (которая на userControl my, который загружается при запуске моего приложения)
<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) и уведомления о пожаре. Для коллекций, которые будут использоваться пользовательским интерфейсом, используйте общий набор ObservableCollection, который вы уже используете. –