Флажок TriState - как изменить порядок состояний

Мог Ваше сообщение Ваш тест, который показывает, что вызов ToLower () быстрее, чем нечувствительное к регистру сравнение? Мои тесты показывают напротив быть верными! Независимо, точки других плакатов о правильности стоят.

11
задан H.B. 19 October 2011 в 11:01
поделиться

1 ответ

Я полагаю, что обработчик событий и поведение по умолчанию просто отменяют друг друга, поэтому флажок кажется отключенным ...

На самом деле мне недавно пришлось сделать то же самое. Мне пришлось унаследовать от CheckBox и переопределить OnToggle :

public class MyCheckBox : CheckBox
{


    public bool InvertCheckStateOrder
    {
        get { return (bool)GetValue(InvertCheckStateOrderProperty); }
        set { SetValue(InvertCheckStateOrderProperty, value); }
    }

    // Using a DependencyProperty as the backing store for InvertCheckStateOrder.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty InvertCheckStateOrderProperty =
        DependencyProperty.Register("InvertCheckStateOrder", typeof(bool), typeof(MyCheckBox), new UIPropertyMetadata(false));

    protected override void OnToggle()
    {
        if (this.InvertCheckStateOrder)
        {
            if (this.IsChecked == true)
            {
                this.IsChecked = false;
            }
            else if (this.IsChecked == false)
            {
                this.IsChecked = this.IsThreeState ? null : (bool?)true;
            }
            else
            {
                this.IsChecked = true;
            }
        }
        else
        {
            base.OnToggle();
        }
    }
}
24
ответ дан 3 December 2019 в 04:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: