2016-07-29 38 views
0

我有一個綁定到一個自定義類的列表框:禁用列表框選擇只

public class SelectionModel : BaseNotifyProperyChanged 
{ 
    private bool _selected; 

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

通過一個實現在XAML:

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

我想禁用僅從用戶界面進行選擇,保持數據綁定完好無損,這可能嗎?我知道我可以通過禁用樣式來禁用ListBoxItems,但這會使綁定無效。

編輯:這似乎有些混亂,所以我會澄清。 我不想刪除選擇或突出顯示,我希望能夠以編程方式選擇項目,但不能通過用戶界面。因此禁用物品或改變高亮顏色並不是我正在尋找的。

+0

如果添加將「IsSelected」設置爲單向綁定的觸發器會發生什麼? –

+0

仍然能夠通過用戶界面選擇項目。 –

+0

不知道我是否理解,你想刪除選定項目的突出顯示,是嗎? – NSGaga

回答

1

你不能禁用它嗎?

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

我真的以爲我試過這個,但顯然不是!這工作完美無缺,謝謝! –