2014-03-03 2 views
1

WPF에서 DataGrid를 보유하고 있습니다. SelectedItem 속성을 바인딩했습니다. 선택한 행을 제거하는 제거 단추가 있습니다. 그러나 다른 곳 (예 : TextBox)을 클릭하면 DataGrid에서 포커스를 잃었을 때 SelectedItem이 변경되지 않습니다. 내가 "이전에"선택된 행을 제거 할 수 있습니다.DataGrid가 포커스를 잃어 버렸지 만 SelectedItem이 null로 설정되지 않았습니다.

예상대로 동작합니까? 쉽게 고칠 수 있습니까?

편집 (요청에 따라 코드) :

<DataGrid SelectedItem="{Binding SelectedPort}" (...) > 

<Button Command="{Binding RemovePortCommand}" >Remove Port</Button> 

public ICommand RemovePortCommand 
{ 
    get 
    { 
     return _removePortCommand ?? (_removePortCommand = new RelayCommand(param => OnRemovePortCommand(), param => SelectedPort != null)); 
    } 
} 
+1

삭제 및 바인딩 게시. – Paparazzi

답변

2

좋은 사람입니다 ....

그냥 설정하기 위해 바인딩 속성을 사용

grid.SelectedItem =null; 

또는

grid.selectedindex = -1 

또는 둘 다 삭제 후

+0

삭제 후 null로 설정됩니다. 잘 작동합니다. 그러나 초점을 잃은 후 (다른 곳을 클릭하면) null로 설정되지 않습니다. –

+0

아니요, SelectedItem을 설정 했으므로 지금 선택하지 않은 항목을 그리드에 알려 주어야합니다 ... 이해가 되나요 ...... 예, 포커스를 잃어도 선택이 취소되지 않습니다 ... – codeSetter

+0

내 의견이 누락되었습니다. 내가하는 일 : 현재 행을 지우고 나면 프레임 워크에 의해 null로 설정됩니다. 잘 작동합니다. 당신이 제안한 것처럼 그것을 명시 적으로 설정하는 것은 여기서 도움이되지 않습니다. –