Microsoft MVP성태의 닷넷 이야기
글쓴 사람
흰털너부리
홈페이지
첨부 파일

안녕하세요.

wpf mvvm viewmodel에서 ObservableCollection을 사용 중입니다.

디비 조회등 다른 작업 결과를 list로 받고
무조건 ObservableCollection을 지우고 모든 데이터를 ObservableCollection에 넣었습니다.

성능 개선을 위해
변경 사항이 있는 것만 ObservableCollection에서 갱신하려고 합니다.

list 맴버 전체를 반복문으로 돌리고
ObservableCollection에서 FirstOrDefault를 사용해 비교 했습니다.
같은 값이 들어와도 항상 null을 반환합니다.

사진은 디버그로 같은 값인지 확인해 본내용입니다.


 private void SyncUserUI()
        {
처음에는 이렇게
            _userUIService!.SetUserUIs();
            UserUIs.Clear();
            _userUIService._userUIs.ForEach(u => UserUIs.Add(u));

이렇게 개선... 안됨
            _userUIService!.SetUserUIs();

            if (UserUIs.Count < 1)
            {
                UserUIs.Clear();
                _userUIService!._userUIs.ForEach(u => UserUIs.Add(u));
            }

            //List<UserUI> oldChange = UserUIs.Except(_userUIService!._userUIs, new DataCompare()).ToList();

            foreach (var item in _userUIService!._userUIs)
            {
                if (item.EmployeeNumber!.Equals("1") || item.EmployeeNumber.Equals("10"))
                {
                    var item3 = UserUIs.FirstOrDefault(u => u == item);
                }

                var item2 = UserUIs.FirstOrDefault(u => u == item);
                //완전히 같으면 넘어감
                if (item2 != null)
                {
                    //UserUIs.Remove(item);
                    //UserUIs.Add(item);
                }
                else
                {//완전히 같지 안으면
                    UserUIs.Remove(item2!);
                    UserUIs.Add(item);
                }
            }
            //UserUIs = UserUIs.OrderByDescending(x => x.Card);
        }








[최초 등록일: ]
[최종 수정일: 11/24/2022]


비밀번호

댓글 작성자
 



2022-11-24 10시28분
FirstOrDefault에 넘긴 u와 item의 타입이 UserUI인 것 같은데요, 그 타입의 Equals 메서드는 재정의하신 건가요?
정성태
2022-11-24 10시37분
[흰털너부리] 재정의 안했습니다.
감사합니다. 확인해보겠습니다
[guest]
2022-11-24 10시49분
[흰털너부리] 리스트 2개를 sync를 맞추는 좋은 방법 있으면 가이드 부탁드립니다.
재방법은 뭔가 수동이고 비효율적 이게 보여서요...
[guest]
2022-11-24 11시06분
정성태

... 31  32  33  34  35  36  37  38  39  40  [41]  42  43  44  45  ...
NoWriterDateCnt.TitleFile(s)
486610년차8/3/201720188dsoframer axframer open시 기존 오픈되어있는 엑셀을 먹어버리는 현상 [1]
4865heyh...7/31/201723388클릭원스로 배포 한 프로젝트가 끝났는지 알 수 있는 방법 [8]
4864초보자7/28/201722263DllIImport질문 드립니다. [1]
4863다연아빠7/23/201722280전역 예외처리에 대해 질문있습니다. [3]
4861라르크7/17/201729455window form 예제 따라하는 중인데 12.3 서비스 응용 프로그램에서 진행이 안됩니다. [3]파일 다운로드1
4859heyh...7/10/201722472다른 환경에서 실행하기 [1]
4858heyh...7/10/201721907Clickonce update에 관한질문입니다. [1]
4857heyh...7/7/201722679제가 여태까지 작성한 보고서입니다. [2]파일 다운로드1
4856heyh...7/6/201720211성태님 다른질문입니다. [4]
4855JP7/6/201720086Dispose 패턴 구현시 Finalize 재정의에 대한 질문드립니다. [2]
4854heyh...7/6/201720152
4853heyh...7/5/201719359성태님이 작성한대로 해봤습니다. [1]파일 다운로드1
4852김레오7/4/201723164서드파티 dll 디버깅에 대해 질문드립니다. [2]
4851김현준7/3/201723877Datagridview VirtualMode 시 GC가 계속 호출되는 현상이 이해가 안갑니다. [2]
4850heyh...7/3/201722297성태님 밑에 질문드렸던 오류입니다. [1]파일 다운로드1
4849포플러7/2/201744468C#으로 만든 프로그램이 어느 순간 속도가 느려지거나 멈춤현상이 있습니다. [4]
4848윤진영7/2/201724917Microsoft Visual C++ 6.0 무설치 관련 [1]
4847heyh...6/30/201721938아무리 고민해도 답이 안나와서.. 질문 드립니다 [1]
4846heyh...6/28/201721612Clickonce에서 Clickonce로 변수 전달 [1]
4845heyh...6/26/201721109vb.net 에서 manifest 제거 방법 [1]파일 다운로드1
4844san6/21/201719983part3 pdf파일로 보는데 눈아퍼요.... 활자로 보고싶어요 [2]
4843윤현수6/20/201718629socket통신에 관한 질문입니다. [1]
4842오세운6/7/201719896로그인폼 다시 질문드려요. [1]
4841popo6/7/201720967궁금한사항이 있어 질문 드립니다. [1]
4840윤현수6/5/201720349datagridview에 바인딩시킨 dataset.table에 관련된 질문입니다. [2]파일 다운로드1
4839오세운6/2/201721997로그인폼 만들기 [1]
... 31  32  33  34  35  36  37  38  39  40  [41]  42  43  44  45  ...