У меня есть несколько пользовательских элементов управления в проекте, и один из них извлекает элементы из XML, создает объекты типа «ClassItem» и должен уведомлять другую информацию UserControl об этих элементах.
Я создал класс для своего объекта («модель», которую будут иметь все элементы):
public class ClassItem
{
public int Id { get; set; }
public string Type { get; set; }
}
У меня есть другой класс, который используется для уведомления других пользовательских элементов управления при создании объекта типа "ClassItem":
public class Class2: INotifyPropertyChanged
{
// Properties
public ObservableCollection<ClassItem> ItemsCollection { get; internal set; }
// Events
public event PropertyChangedEventHandler PropertyChanged;
// Methods
public void ShowItems()
{
ItemsCollection = new ObservableCollection<ClassItem>();
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs("ItemsCollection"));
}
}
}
Данные поступают из файла XML, который анализируется для создания объектов типа ClassItem:
void DisplayItems(string xmlContent)
{
XDocument xmlItems = XDocument.Parse(xmlContent);
var items = from item in xmlItems.Descendants("item")
select new ClassItem{
Id = (int)item.Element("id"),
Type = (string)item.Element("type)
};
}
Если я не ошибаюсь, это должно проанализировать xml и создать объект ClassItem для каждого элемента, который он находит в XML. Следовательно, каждый раз, когда создается новый объект ClassItem, он должен запускать уведомления для всех пользовательских элементов управления, которые «привязываются» к уведомлениям «ItemsCollection», определенным в Class2.
И все же код в Class2, похоже, даже не запускается :-( и уведомлений, конечно, нет ...
Я ошибаюсь в каком-либо из предположений, которые я сделал, или я что-то упускаю? Любая помощь будет оценена!
Thx!