2013-02-13 85 views
1

SelectedItem爲空而SelectedItems有一個項目被選中?所選項目不與選定項目同步 - WPF DataGrid

下面是選擇改變事件的截圖:

enter image description here

我的DataGrid:

<DataGrid SelectionChanged="CustomCmdDg_SelectionChanged" SelectedItem="{Binding CurrentX,Mode=TwoWay}" DataContext="{Binding MyViewModel}" x:Name="CustomCmdDg" ItemsSource="{Binding xList}" AutoGenerateColumns="False" GridLinesVisibility="Horizontal"> 

... 在我的ViewModel:

xList = X類的列表(可觀察的收集)

private x currentX; 

    public x CurrentX 
    { 
     get { return currentX; } 
     set 
     { 
      currentX = null; 
      NotifyPropertyChanged("CurrentX"); 
     } 
    } 

故意想的是選擇的項目將是無效

+0

你能提供一些代碼,你的綁定,代碼背後 – JMan 2013-02-13 08:31:55

+0

我編輯的問題 – 2013-02-13 08:37:23

+0

粘貼'ViewModel'的代碼 – 2013-02-13 08:41:38

回答

1

如果您設置CURRENTITEM爲null,你應該首先從集合中刪除它,然後它會從選定項目消失:

Public ObservableCollection<x> xList 

public x CurrentX 
{ 
    get { return currentX; } 
    set 
    { 
     xList.Remove(currentX) 
     currentX = null; 
     NotifyPropertyChanged("CurrentX"); 
    } 
} 

您的可觀察列表將自行更新

如果您需要能夠操作SelectedItems集合,則還必須提供綁定,並執行所需的代碼

+0

我不希望從列表中刪除項目,我只是希望他不要選擇/更改代碼 – 2013-02-13 09:17:09

+0

@Hodaya:編輯 – JMan 2013-02-13 09:21:26

+1

我不想控制選定的項目,似乎不合邏輯的是它們不與選定的項目同步項目。 – 2013-02-13 09:25:09