наследуется от Selector и переопределяет метод OnSelectionChanged, есть дочерние контролы, которые имеют свойство IsSelected (Selector.IsSelectedProperty.AddOwner), когда это свойство меняет значение, в зависимости от нового значения, я инициирую соответствующие эвенты - Selector.SelectedEvent или Selector.UnselectedEvent. Так вот, ожидающее поведение - при инициации эвентов вызовется метод OnSelectionChanged и изменятся значения свойств SelectedItem и SelectedIndex, что в свою очередь, если эти свойства имели какое-то значение, изменит и свойство IsSelected у предыдущего SelectedItem. Но текущее поведение: вызывается метод OnSelectionChanged, но SelectedItem и SelectedIndex не меняется, что в свою очередь не меняет значение IsSelected. И получается, что "выделение" контролов происходит, но не сбрасывается "выделение" у предыдущего контрола (а по идее должно, Selector же, а не MultiSelector). Может я что-то пропустил?
как я понимаю, надо все же явно указывать родителю SelectedItem? То есть, обработали у чайлда событие, по которому надо поменять IsSelected - оповестили родителя и установили SelectedItem.
Обсуждают сегодня