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분
정성태

... 91  92  93  94  [95]  96  97 
NoWriterDateCnt.TitleFile(s)
78임은선1/26/200513633        답변글 [답변]: [답변]: 질문이 있는데요....
72최정희1/19/200513075또 접니다.
73정성태1/19/200512883    답변글 [답변]: 또 접니다. [2]
74최정희1/19/200512230        답변글 [답변]: [답변]: 당연히 도움이 되지요.
75정성태1/19/200512770            답변글 [답변]: [답변]: [답변]: 당연히 도움이 되지요.
69최정희10/13/200412217저 기억하실런지? 그때 두리로IE툴바 만들어 주셨죠.
62엄길웅10/1/200413416매번 물어보기만 하는군요..
63정성태10/2/200413153    답변글 [답변]: 매번 물어보기만 하는군요..
64keal...10/5/200414814        답변글 [답변]: [답변]: 매번 물어보기만 하는군요..
65정성태10/6/200414661            답변글 [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
68keal...10/11/200412369                답변글 [답변]: [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
71정성태10/31/200412428                    답변글 [답변]: [답변]: [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
58엄길웅9/30/200412569안녕하세요.. 추석은 잘 보내셨는지요?
59정성태9/30/200412725    답변글 [답변]: 안녕하세요.. 추석은 잘 보내셨는지요?
60엄길웅10/1/200412565        답변글 [답변]: [답변]: 안녕하세요.. 추석은 잘 보내셨는지요?
56엄길웅9/23/200412898ATL을 이용해서 함수를 하나 만들었습니다.
57정성태9/23/200413926    답변글 [답변]: ATL을 이용해서 함수를 하나 만들었습니다.
61엄길웅10/1/200412585        답변글 [답변]: [답변]: ATL을 이용해서 함수를 하나 만들었습니다.
54차광석8/26/200412768잘 지내시죠?
55정성태8/27/200411862    답변글 [답변]: 잘 지내시죠?
52김명원8/3/200412699질문이요..
53정성태8/19/200412545    답변글 [답변]: 질문이요..
50김상표7/5/200412398질문요...
51정성태7/6/200412253    답변글 [답변]: 질문요...
45송야5/29/200412397웹페이지 자동로그인..
46정성태5/31/200413310    답변글 [답변]: 웹페이지 자동로그인..
... 91  92  93  94  [95]  96  97