변경 후 I는 다음과 같이 정의 콤보의 컬럼 데이터 그리드있다. 그러나 콤보 상자의 텍스트 상자에 대한 텍스트를 다른 DataGrid에서 편집 할 수 있으며 다른 ObservableCollection (QualityItemCollection)에 저장하고 위의 그리드에서 콤보 상자를 가져 오려면 해당 컬렉션이 변경 될 때 발생하는 DataGrid에 이벤트가 있습니다. 이 경우에도 QualityInfoAssortmentCollection이 다시 읽혀지게됩니다 (콤보 상자도 다시 설정해야하므로 제대로 작동하려면 반복이 필요합니다).콤보 성능 ItemsSource
이제 데이터가 처음로드 될 때 모든 것이 멋지고 멋지다. 그러나 QualityInfoAssortmentCollection 업데이트 이벤트가 발생하면 위의 콤보 박스가 실행되기까지 5-7 초가 걸립니다. . 새로 고침 자체는 시간이 흘렀고 수행하는 데 10 분의 1 초도 걸리지 않습니다. 콤보 박스에는 8-10 개가 넘는 행이 없으며 다른 곳에서 제안 된 것처럼 가상화 스택 패널을 사용하려고해도 차이가 없습니다. 그것을 표시하는 DataGrid에는 약 10 개의 행이 있으므로 셔플해야하는 엄청난 양의 데이터에도 근접하지 않습니다.
편집 : 정의하는 QualityItemCollection을 사용할 수 없다는 자세한 설명. QualityItemColletion은 위의 DataGrid의 모든 항목에 대해 동일하지만 위 체크 박스의 항목에 대한 정보는 위의 그리드에있는 항목별로 설정됩니다. 따라서 QualityItemCollection의 복사본을 QualityItemAssortmentCollection에 복사합니다.이 복사본에는 확인란에 대한 부울도 있습니다. 이 작업을 수행하는 더 좋은 방법이있을 수 있습니까?
편집 2 : 지금 WPF 프로파일 러를 사용해 보았습니다. 프로그램이 이상한 일을하는 동안 아무것도 보이지 않는 것처럼 잠 그어 버립니다. 그러나 Visual Studio를 통해서만 프로그램을 실행하면 Visual Studio를 통해 지연이 발생하지 않으므로 Visual Studio에서 수행하는 작업으로 바뀝니다. 예.
나는 이것을 얻지 못했습니다 ...'콤보 상자에있는 텍스트 상자의 텍스트는 다른 DataGrid에서 편집 할 수 있습니다. 위의 그리드에서 콤보 상자를 가져 오려면 해당 컬렉션이 변경 될 때 발생하는 DataGrid의 이벤트가 있습니다. '... 콜렉션이 관찰 가능하다면, 왜 당신이 그것을 고칠 수 없는가? 나는 당신이 말하는 그 사건의 목적을 이해할 수 없었다. –
조금 더 설명하려고했습니다. – PerK