2012-08-13 45 views
3

我用下面的方法來約束我的項目IsSelected的屬性:WPF ListView Programmatically Select ItemWPF ListView控件編程取消項目

<ListView.ItemContainerStyle> 
    <Setter Property="IsSelected" Value="{Binding IsSelected}"/> 
</ListView.ItemContainerStyle> 

現在我能夠通過簡單的IsSelected屬性設置爲選擇的背後我的代碼項目真正。但是,我無法通過將我的項目的IsSelected屬性設置爲false來取消選擇項目。

將items屬性IsSelected設置爲true將觸發ListViewSelectionChanged事件。但是,將已選項目的屬性IsSelected設置爲false不會觸發事件。該屬性將更改爲false,但該項目在ListView中保持選定狀態。我也試過使用Mode = TwoWay沒有任何成功。

我將不勝感激任何幫助!

非常感謝你提前,

托馬斯

+0

綁定ListView控件到數據源再次...或者你用多選擇? – 2012-08-13 14:55:11

+0

沒有人知道我在這裏做錯了嗎? – 2012-08-27 12:39:44

+0

你是否在ui元素或綁定的數據上下文中更改IsSelected?如果它是你的DataContext,它是否實現INotifyPropertyChanged? IsSelected是否引發了這種變化? – dowhilefor 2012-08-27 12:51:45

回答

1

看起來你只是缺少TargetType的風格。根據Kent的原始代碼添加目標類型ListViewItem

<ListView.ItemContainerStyle>   
    <Style TargetType="ListViewItem">    
     <Setter Property="IsSelected" Value="{Binding IsGroovy}"/>    
    </Style> 
</ListView.ItemContainerStyle> 
3

對於OP或其他尋求「以編程方式」取消選擇ListView的人。 如果您的ListView七拼八湊單人房,擴展或多個可以永遠只是:

YourlistView.Selecteditem = null;