2009-09-30 2 views
2

Я хотел бы предотвратить выбор ListBoxItems в моем ListBox. У моей DataTemplate есть флажок, и это должно быть единственное, что пользователь может щелкнуть или выбрать. Как я могу это сделать? Спасибо!WPF - запрет выбора списка ListBox

ответ

7

Это почти дублирующий вопрос. На самом деле, вы задаете два вопроса:

  1. Либо ваш стиль ListBoxItem так, что он не показывает выбор (смотрите в другом месте на SO для этого ответа), или заменить ListBox с ItemsControl, если вы этого не сделаете нужны другие функции, которые предоставляет ListBox.

  2. Bind IsChecked собственности вашей CheckBox к родительскому ListBoxItem.IsSelected собственности:

    <CheckBox 
        IsChecked="{Binding 
         RelativeSource={RelativeSource Mode=FindAncestor, 
                AncestorType=ListBoxItem}, 
         Path=IsSelected}" 
    /> 
    
0

Когда ваш пользователь попытается (не) проверить ваши флажки, тогда элемент станет «активным» каким-либо образом. И будет применен сфокусированный стиль. Насколько я знаю, нет возможности отключить выбор (потому что, если вы сделали свои флажки не будут работать), но вы можете переопределить сфокусированный (или выбранный) стиль ваших элементов списка.

+1

Использование ItemsControl, как говорит Дрю, делает трюк. –

Смежные вопросы