Как обновить ListBoxItem [с datacontext] - PullRequest
0 голосов
/ 20 января 2012

У меня следующий класс в качестве контекста данных.

class s
{
public string name{get;set;}
public string family {get;set;}
public string status{get;set;}
}

Я создал стиль для listBoxItem [добавил еще 2 contentPresenter], чтобы он соответствовал моему текстовому тексту.Привязка?} "-?может быть именем, семьей или состоянием -.

Я установил этот текст данных как ListBoxItem, но когда я изменяю текст данных, он не отображается

((s)(item.DataContext)).name="change";

, но я вижу, что ничего не изменилось.

Я в Google, но большинство вопросов немного отличалось от моего.

С уважением, PK DEVELOPER

Ответы [ 3 ]

2 голосов
/ 20 января 2012

В дополнение к использованию ObservableCollection вам также необходимо реализовать интерфейс INotifyPropertyChanged для вашего класса s, а также привязать элементы вашего окна WPF к свойствам класса s с помощью привязки данных.

Ниже приведено подробное описание реализации INotifyPropertyChanged:

http://msdn.microsoft.com/en-us/library/ms743695.aspx

и Обзор базы данных MSDN

2 голосов
/ 20 января 2012

Выполните следующие действия:

  1. Установите для DataContext родительского элемента ListBox значение ObservableCollection () SCollection или this
  2. Установите для ItemSource объекта ListBox значение {Binding}, если для этого параметра установлен DataContext, а затем использовать {Binding SColection}
  3. Добавьте элементы в ObservableCollection и ListBox автоматически обновится
  4. Затем просто измените элементы в ObservableCollection, а не в ListBox
0 голосов
/ 20 января 2012

На самом деле я не очень понимаю ваш вопрос?Вы хотите иметь Listbox, который показывает список объектов типа s?Если это так, я бы выбрал DataTemplates, как в моем ответе на этот вопрос .

Или у вас есть особая ситуация, которая вынуждает вас напрямую установить привязкудля каждого ListBoxItem?

...