사용자가 여러 옵션 중에서 사전을 선택할 때 WPG DataGrid가 있고 DG의 ItemsSource
이 설정됩니다.WPF DataGrid.SelectedItem 할당이 작동하지 않음
DG에 CheckBox 열을 추가하고 한 번에 한 행만 IsChecked = true
개가 될 수 있도록 설정했습니다. 사용자가 상자 중 하나를 "확인할"때 Checked
이벤트 핸들러는 모든 행을 순환하며 으로 선택한 행만 남겨둔 채로 을 SelectedItem
을 제외한 각 행의 CheckBox에 설정합니다. 체크 박스가 사용자에 의해 Checked
일 때이 작동합니다.
그러나이 CheckBox 열은 사전의 데이터에 "바인딩"되어 있지 않습니다. 따라서 사용자가 DG를 바인딩 할 사전을 "선택할"때 해당 사전의 "기본"개체는 "기본값"으로 표시되지 않습니다. 그래서 .IsChecked = true
에 ItemsSource
이 설정된 직후 올바른 행을 시도합니다.
하지만 내 Checked
이벤트 처리기 IsChecked = false
은 SelectedItem
을 제외한 모든 항목에 문제가 있음을 확인한 다음 SelectedItem
을 확인합니다.
사용자가 처음에 DG에 바인딩 할 사전을 선택하면 프로그래밍 방식으로 DG가 채워집니다 (확인 됨). 따라서 SelectedItem
은 항상 첫 번째 행입니다. 따라서 ACTUAL 기본 개체 인 IsChecked = true
대신 DG IsChecked = true
이 첫 번째 행입니다.
내가 솔루션에 도착 가장 가까운 : 는 그 대신 SelectedItem
을 얻는, 그것을 파악하도록 Checked
이벤트 핸들러를 수정하려고하는 행되는 "기본"행, "선택 취소"다른 모든 행 및 만 이 행을 "선택"합니다. 그러나 어떤 이유로이 호출이 작동하지 않습니다.
dataGridSymbols.UnselectAll()
dataGridSymbols.SelectedItem = row
아무도이 통화에 문제가 있다는 것을 알고 있습니까? 나는 내가 행을 올바르게 설정했다는 것을 안다. 어쩌면 SelectedItem을 객체에 설정해야하지만 행에서 객체에 어떻게 접근해야 할까?
코드를 설명하는 대신 코드를 추가로 표시해야합니다. –
감사합니다. @DarylBehrens - 코드 자체가 도움이 될 것이라고 생각하지 않았습니다. 내 문제가 구문이나 다른 것이 아니기 때문에 일반적인 개념이었습니다. 다시 생각해 보면, 여기에있는 대부분의 사람들이 어쨌든 단어 대신 코드를 통해 개념을 이해하는 것을 선호하기 때문에 코드를 게시하면 더 많은 도움이 될 것입니다. 그래서 내가 답을 올렸을 때 코드에 게시했습니다. 팁 고마워. –
문제 없음. MVVM 패턴을 조사해 보는 것이 좋습니다. WPF에서와 같이 작업하는 것이 좋습니다. 여기에있는 코드는 코드에 있기 때문에 테스트하기가 매우 어려울 것입니다. –