2014-03-03 99 views
1

我有一個列表框在我的view.I已設置選擇模式爲擴展,以便用戶可以按ctrl和多選列表框項目。我的列表框項目有IsSelected屬性,我希望它設置爲true時項目選擇和假時,其deselected.Here是我的代碼擴展選擇列表綁定問題

<ListBox ItemsSource="{Binding ItemsList}" 
       SelectedItem="{Binding SelectedItem, Mode=TwoWay}" 
    SelectionMode="Extended"> 

public ObservableCollection<Item> ItemsList 
{ 
    get; 
    set; 
} 

public class Item 
{ 
    public bool IsSelected 
    { 
     get; 
     set;  
    } 
} 

public Item SelectedItem 
{ 
    get 
    { 
     return _selectedItem; 
    } 
    set 
    { 
     _selectedItem=value; 
     _selectedItem.IsSelected=true;  
     } 
} 

的isSelected在單一選擇的情況下獲得真實的,但不工作的多重選擇,也請建議我怎麼能設置爲false時取消.Iam使用MVVM.Can可以使用style嗎?

回答

1

您可以使用樣式設定器的ListBoxItemIsSelected屬性綁定到的ItemIsSelected屬性:

<ListBox ItemsSource="{Binding ItemsList}" 
     SelectedItem="{Binding SelectedItem, Mode=TwoWay}" 
     SelectionMode="Extended"> 
    <ListBox.ItemContainerStyle> 
     <Style TargetType="ListBoxItem"> 
      <Setter Property="IsSelected" Value="{Binding IsSelected}"/> 
     </Style> 
    </ListBox.ItemContainerStyle> 
    ...... 
    ...... 
</ListBox> 
+1

非常感謝:-) – TRS