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)
86정성태2/22/200512649    답변글 [답변]: 정성태님 홈같은 부드러운 페이지 넘김?은 어떻게 구현하나요? [2]
84김용국2/21/200512776Smart Client에 관한 문의 드립니다.
87정성태2/22/200512854    답변글 [답변]: Smart Client에 관한 문의 드립니다.
82천호민2/1/200511745데이터 그리드의 템플릿필드에 버튼 컨트롤을 넣구요.. 포스트백시 이전 위치에 포커스를 주고 싶은데요..
83정성태2/2/200512610    답변글 [답변]: 데이터 그리드의 템플릿필드에 버튼 컨트롤을 넣구요.. 포스트백시 이전 위치에 포커스를 주고 싶은데요..
79정형균1/26/200512531드디어 정성태님을 찾았네요..^^; 스마트 클라이언트 구현하는데 배포시 문제때문에 죽겠습니다...
80정성태1/26/200511203    답변글 [답변]: 드디어 정성태님을 찾았네요..^^; 스마트 클라이언트 구현하는데 배포시 문제때문에 죽겠습니다...
76임은선1/25/200512097질문이 있는데요....
77정성태1/25/200512403    답변글 [답변]: 질문이 있는데요....
78임은선1/26/200512936        답변글 [답변]: [답변]: 질문이 있는데요....
72최정희1/19/200512379또 접니다.
73정성태1/19/200512179    답변글 [답변]: 또 접니다. [2]
74최정희1/19/200511535        답변글 [답변]: [답변]: 당연히 도움이 되지요.
75정성태1/19/200512083            답변글 [답변]: [답변]: [답변]: 당연히 도움이 되지요.
69최정희10/13/200411502저 기억하실런지? 그때 두리로IE툴바 만들어 주셨죠.
62엄길웅10/1/200412680매번 물어보기만 하는군요..
63정성태10/2/200412474    답변글 [답변]: 매번 물어보기만 하는군요..
64keal...10/5/200414076        답변글 [답변]: [답변]: 매번 물어보기만 하는군요..
65정성태10/6/200413970            답변글 [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
68keal...10/11/200411699                답변글 [답변]: [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
71정성태10/31/200411744                    답변글 [답변]: [답변]: [답변]: [답변]: [답변]: 매번 물어보기만 하는군요..
58엄길웅9/30/200411886안녕하세요.. 추석은 잘 보내셨는지요?
59정성태9/30/200412036    답변글 [답변]: 안녕하세요.. 추석은 잘 보내셨는지요?
60엄길웅10/1/200411834        답변글 [답변]: [답변]: 안녕하세요.. 추석은 잘 보내셨는지요?
56엄길웅9/23/200412191ATL을 이용해서 함수를 하나 만들었습니다.
57정성태9/23/200413227    답변글 [답변]: ATL을 이용해서 함수를 하나 만들었습니다.
... 91  92  93  94  [95]  96  97