Изучаю WPF, пытаюсь привести свои некрасивые программы к современному виду. Подскажите пожалуйста направление, как победить ситуацию. Есть ListBox, который связан с классом, содержащим коллекцию объектов. Помимо этого у ListBox Item есть кнопка, событие которого нужно отловить. Само событие отловить не сложно, но функция обработчик создается не в том классе, в котором хотелось бы (в классе окна). Важно знать, в каком объекте из коллекции произошло событие нажатия кнопки. То есть обработчик нажатия вставить в класс объекта.
Упрощенный вариант кода. Связывание делаю в Бленде.
| Код | public class MyObjType : INotifyPropertyChanged { private bool MyProperty { get; set; } public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChange(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } //здесь хочется сделать функцию обработки события на нажатие кнопки в листбоксе }
public class IAdapter : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; private void NotifyPropertyChange(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } public System.Collections.ObjectModel.ObservableCollection<MyObjCollection> MyObjCollection; { get { if (MyObjCollection == null || MyObjCollection.Count == 0) { MyObjCollection = new System.Collections.ObjectModel.ObservableCollection<MyObjCollection>(); MyObjCollection.Add(new MyObjType()); } return MyObjCollection; } set { MyObjCollection = value; } } }
|
|