Я создаю столбец связанных элементов управления DatePicker в элементе управления DataGrid. Для каждого элемента управления DatePicker я хотел бы добавить обработчик SelectedDateChangedEvent, но мне трудно это сделать.Каков правильный тип обработчика DatePicker SelectedDateChangedEvent для FrameworkElementFactory
Рассмотрим следующий код для WPF:
private void dg_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyName == "Event Date")
{
var f = new FrameworkElementFactory(typeof(DatePicker));
...
// I tried this:
//f.AddHandler(DatePicker.SelectedDateChangedEvent, new RoutedEventHandler(aRoutedEventHandler));
// and I tried this:
//f.AddHandler(DatePicker.SelectedDateChangedEvent, new SelectionChangedEventHandler(aSelectionChangedEventHandler));
e.Column = new DataGridTemplateColumn()
{
Header = e.Column.Header,
CellTemplate = new DataTemplate() { VisualTree = f },
};
}
}
private void aRoutedEventHandler(object sender, RoutedEventArgs e) { ... }
private void aSelectionChangedEventHandler(object sender, SelectionChangedEventArgs e) {...}
Пытаюсь либо из обработчиков событий приводит к "Аргумент Exception":
Первый шанс исключение типа 'System.ArgumentException' произошло в PresentationFramework.dll Дополнительная информация: Тип обработчика недействителен.
Каков правильный обработчик?
ли объекты в ваша поддержка коллекции INotifyPropertyChanged? Если это так, вы можете попробовать подключиться к этому, а не подключаться к основным событиям управления. – KornMuffin
Я отложил то, что я намеревался сделать в обработчике событий, до момента проверки. Я все еще собираюсь оставить этот вопрос без ответа, хотя я считаю, что это ошибка. (Я сделал то, что показано в коде выше с помощью элемента управления ComboBox, и ошибка не возникла). – Bhoboco