문제

방금 컬렉션을 시작하고 (관찰 한 수집) 쉽게 생각하는 벽에 부딪칩니다. 나는 그것이 쉽다고 확신하지만 나는 단지 답을 찾지 못한다.

왼쪽에 Datagrid가있는 WPF 화면이 있고 화면 오른쪽에 텍스트 상자가 있습니다. Datagrid는 ObservableCollection (활동)에 바인딩되며 Datagrid를 위아래로 클릭하고 올바른 정보로 내 TextBox가 새로 고침을 볼 수 있습니다. 그런 다음 텍스트 상자의 정보를 변경하여 DB로 다시 저장할 수 있습니다. 모든 것이 완벽하게 작동합니다!

그러나 컬렉션에 레코드를 추가 할 때 올바른 접근 방식으로 길을 잃었습니다. 아래와 같이 ADD 메소드를 사용하고 있지만 편집 할 수 있도록 새로 작성된 레코드로 어떻게 이동합니까? 나는 12 개의 접근 방식을 시도했지만 아직 올바른 접근법을 찾지 못했습니다. 텍스트 상자는 마지막 편집 된 레코드에 계속 집중하고 있습니다. 어떤 아이디어?

Private Activities As ObservableCollection(Of ActivityRecord)

Private Sub AddMode()
    Dim _ActivityRecord As New ActivityRecord(0, DateTime.Now, Nothing, "", gWorkerID, "")
    Activities.Add(_ActivityRecord)
'Code to move to the newly created record should go here
도움이 되었습니까?

해결책

WPF에서는 모든 항목 구성 파생 제어 (데이터 그 리드 나열) 남몰래 CollectionView의 파생물을 사용하여 레코드/항목 간의 탐색을 용이하게합니다. 사실상이를 제공하는 클래스입니다. 통화 텍스트 상자와 같은 다른 컨트롤을 돕는 메커니즘 현재의.

새 객체를 만들어 ObservAbleCollection에 추가하면 CollectionView의 MoveXXX 메소드 중 하나를 사용하여 해당 항목을 최신 상태로 만들 수 있습니다. CollectionView에서 ADD 메소드를 호출 할 수 있으며 기본 관측형 수집에서 ADD 메소드를 자동으로 호출 할 수 있습니다.

어느 쪽이든, CollectionView에 대한 참조를 검색하는 것은 비밀입니다. CollectionView의 정적 메소드 (이름을 잊어 버리기 위해)를 사용하여 Datagrid에 사용되는 뷰를 검색하거나 (그리고 이것이 선호하는 메소드입니다) ListCollectionView를 설명하고 DataGrid를 삽입 할 수 있습니다. .

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top