У меня проблема с моим кодом. Я использую listbox и наблюдаемую коллекцию для добавления данных в список. код выглядит следующим образом:Почему мой ObservableCollection не обновляется в ListBox?
ListData actualData;
ObservableCollection<ListData> data;
public Calculate()
{
InitializeComponent();
data = new ObservableCollection<ListData>();
newData();
listbox1.ItemsSource = data;
}
private void newData()
{
actualData = new ListData("1", "2", "3");
data.Add(actualData);
}
Теперь у меня есть кнопка, которая, например, изменения actualData
, но я не могу видеть изменения в списке.
кнопка выглядит следующим образом:
private void button1_Click(object sender, RoutedEventArgs e)
{
actualData.first = "12";
}
Я нашел обходной путь:
listbox1.ItemsSource = null;
listbox1.ItemsSource = data;
, но это не является хорошим решением, что здесь не так?
Пятно на! Единственное, что я сказал бы, это комментарии к вызову события. Это абсолютно лучшая практика, а не спорная тема. См. Этот ответ: http://stackoverflow.com/questions/2582052/c-sharp-event-handlers-not-thread-safe –
okay; Я имел в виду [сообщение в блоге Эрика Липперта] (http://blogs.msdn.com/b/ericlippert/archive/2009/04/29/events-and-races.aspx) – Adam
codesparkle: достаточно справедливо –