仅通过用户界面禁用ListBox选择

时间:2016-07-29 20:27:12

标签: c# wpf listbox selection

我有一个绑定到自定义类的ListBox:

copy

通过xaml中的实现:

public class SelectionModel : BaseNotifyProperyChanged
{
    private bool _selected;

    public bool IsSelected
    {
         get { return _selected; }
         set
         {
             _selected = value;
             base.RaisePropertyChanged( "IsSelected" );
         }
    }
    //.... 
}

我想仅禁用用户界面中的选择,保持数据绑定不变,这可能吗?我知道我可以通过使用样式禁用ListBoxItem来禁用选择,但这会使绑定无效。

编辑:这似乎有些混乱,所以我要澄清一下。 我不想删除选择或突出显示,我希望能够以编程方式选择项目,而不是通过用户界面。因此禁用项目或更改高亮颜色不是我和#39;我正在寻找。

1 个答案:

答案 0 :(得分:1)

你不能禁用它吗?

<Style TargetType="{x:Type ListBoxItem}">
    <Setter Property="IsSelected" Value="{Binding IsSelected, Mode=OneWay}"/>
    <Setter Property="IsEnabled" Value="False"/>
</Style>