Выбор Silverlight ComboBox изменен или повторно выбран событие - PullRequest
0 голосов
/ 03 июня 2011

В Silverlight ComboBox событие SelectionChanged не срабатывает, когда вы открываете выпадающий список, а затем щелкаете по выбранному в данный момент элементу. Каков наилучший способ инициировать событие / метод, когда это происходит? (в дополнение ко всему, что обычно вызывает SelectionChanged, т. е. они либо щелкают по невыбранному или выделенному элементу; но не тогда, когда просто щелкают из выпадающего списка)
В настоящее время у меня есть шаблоны данных для элементов в списке. Я пытался прикрепить к событиям MouseLeftButtonUp элементов этого элемента, но вокруг элементов есть поле, поэтому не всегда регистрируется щелчок, который закрывает поле со списком и выбирает элемент.

Ответы [ 2 ]

1 голос
/ 03 июня 2011

Рассматривали ли вы событие "DropDownClosed"?

0 голосов
/ 22 октября 2012

Я знаю, что прошло много времени с момента последнего комментария, но я опубликую свое решение на случай, если кто-то там столкнется с той же проблемой.Единственный способ, которым мне удалось «повторно выбрать» текущий выбранный элемент, - это изменить ComboBoxItemTemplate следующим образом:

<Style TargetType="ComboBoxItem">
    ....
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ComboBoxItem">
                <Grid ... MouseLeftButtonDown="Grid_MouseLeftButtonDown">
                ...
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

Теперь в событии Grid_MouseLeftButtonDown я отменил выбор текущего элемента;затем щелчок мыши будет обработан как обычно, выбрав элемент, который находится под курсором мыши.

...