WPF - 阻止ListBox项目选择

时间:2009-09-30 07:05:39

标签: wpf listbox datatemplate

我想阻止在ListBox中选择ListBoxItems。我的DataTemplate有一个复选框,这应该是用户可以单击或选择的唯一选项。 我怎样才能做到这一点? 谢谢!

2 个答案:

答案 0 :(得分:7)

这几乎是一个重复的问题。事实上,你在这里提出两个问题:

  1. 为您的ListBoxItem设置样式,使其不显示选择(在SO的其他位置查找该答案),或者如果您不这样做,请将ListBox替换为ItemsControl需要ListBox提供的其他功能。

  2. 将复选框的IsChecked属性绑定到父ListBoxItem.IsSelected属性:

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

答案 1 :(得分:0)

当您的用户尝试(取消)检查您的复选框时,项目会以某种方式变为“有效”。并将应用专注的风格。据我所知,没有办法禁用选择(因为如果你的复选框不起作用),但你可以覆盖列表框项目的焦点(或选定)样式