У меня есть usercontrol, который может содержать множество различных типов элементов управления (например, кнопка, текстовое поле, поле со списком или флажок). Мне нужен общий способ отслеживания изменений. В большинстве случаев мне не нужны детали (т. Е. Мне не нужно знать, какое текстовое поле было изменено). Когда я увидел EventManager.RegisterClassEvent
, я подумал, что это будет мое решение, но скоро я понимаю, что это не так. Эта проблема заключается в том, что она слишком много выстрелила. Например, если у меня есть кнопка и combobox в том же элементе управления, событие button.click также запускается, когда я попадаю в раскрывающийся список combobox.Ускоренный способ отслеживания «измененного» элемента управления?
В WinForms мне пришлось перебирать все элементы управления в usercontrol и подписаться на соответствующее событие (например, TextBox.TextChanged или ComboBox.SelectedIndexChanged), но это утомительно, но работает. Я надеюсь, что в WPF есть лучший и простой способ сделать это.
Я не понимаю вашего ответа. Проблема в том, что, используя ваш xaml, если у меня есть combobox в этом UserControl, я также получаю событие UserControl_Click, когда я просто нажимаю кнопку выпадающего списка combobox. Как я могу это предотвратить? Для combobox я просто хочу, чтобы событие SelectionChanged запускалось после того, как я действительно изменил выделение. – newman 2010-12-06 03:17:14