Проблема скорее всего в привязке. В ListBox не прибавляются элементы.
Вот сам клас:
public partial class MainWindow : Window
{
private Window1 wd;
private MyList MyData;
public MainWindow()
{
InitializeComponent();
MyData = new MyList();
MyData.Add(new Person("1", "2", "3", null));
MyData.Add(new Person("1", "2", "3", null));
}
}
class MyList : ObservableCollection
}
Ответ
Где вы находите такие способы создания коллекций?)
Ну, исправим то что есть:
Объект создается в ресурсе окна, соответственно добавление элементов в коллекцию должно происходить в конструкторе этого объекта. То что вы добавляете элементы в *.cs файле, это не совсем то, так как это не тот объект к которому вы привязываетесь.(привязка идет к объекту созданному в ресурсе).
Идем дальше. Раз уж вы решили создать коллекцию унаследовавшись от нее самой, то добавляйте элементы унаследованным методом:
public class MyList : ObservableCollection
В принципе все, должно работать.
Пару замечаний по вашему коду:
public ObservableCollection
Если вы будете привязываться к MyData то привязка не пройдет. Привязка работает только со свойствами, т.е. должно выглядеть так:
public ObservableCollection
Как это делается обычно
В проекте должен быть класс VM, реализующий интерфейс INotifyPropertyChanged. Этот класс будет являться DataContext-oм для вашего окна(как задать DataContext). В этом классе и объявить список:
public class MainVM : INotifyPropertyChanged
{
public ObservableCollection
public MainVM()
{
MyList = new ObservableCollection
//---------------------
//реализация интерфейса
} //---------------------
После таких манипуляций, использовать привязку одно удовольствие:
Комментариев нет:
Отправить комментарий