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분
[흰털너부리] 재정의 안했습니다.
감사합니다. 확인해보겠습니다
[손님]
2022-11-24 10시49분
[흰털너부리] 리스트 2개를 sync를 맞추는 좋은 방법 있으면 가이드 부탁드립니다.
재방법은 뭔가 수동이고 비효율적 이게 보여서요...
[손님]
2022-11-24 11시06분
정성태

1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5811치르바2/3/2023273MiniDumpWriteDump API로 덤프수집을 했는데요.. [3]
5810이건우1/31/2023313윈도우서비스를 통한 웹통신관련 질문입니다 [3]
5809이상훈1/31/2023289다채널 영상 디스플레이어 개발 관련 질문입니다. [3]
5808근우1/30/2023376WPF 에서 UserControl 과 ControlTemplate 의 차이점은 무엇인가요? [6]
5807궁금맨1/28/2023370C# 10 책에 나온 예제의 결과가 제 컴에서는 좀 달라서요. 이유가 궁금합니다. [1]
5806스레드1/25/2023311총정리 - 다양한 스레드들 [초안] [1]파일 다운로드1
5805어웨...1/25/2023223Taskcontinuewith vs Async/Await [2]파일 다운로드1
5804나이...1/25/2023203MS의 Dependency Injection(DI)에 AddSingleton으로 등록된 객체의 Event 등록후 사용시 앱 종료시 별도로 Event를 해지해야 하나요? [2]
5803ds...1/24/2023248드라이브 문자를 통해서 물리 디스크 명칭을 알아내고 싶습니다. [1]
5802모바...1/22/2023300XAMARINE vs Android Studio [7]
5801블루...1/19/2023396WPF 은행지폐계수기 개조 후 결과값 서버 전송 [2]파일 다운로드1
5800김민아1/19/2023369안녕하세요 가비지 컬렉터 동작 원리 중 궁금한점이 있습니다 [5]
5799손님1/19/2023270C# 공유폴더 내 Acess 디비 공유 [2]
5798kss1/19/2023278책 오탈인가요? [1]
5797이거...1/19/2023357C# 공부 이후 MS 프레임워크.. 어느것을 공부해야할까요? 너무 많아서 정신이 없네요 [5]
5796손님1/19/2023288해킹 test [3]
5795동기1/18/2023230동기 스레드와 메서드와 While [2]
5794박규동1/18/2023206.net publish 할때마다 runtimeconfig 값이 바뀌는 현상 [1]
5793후후훗1/18/2023253.NET Core 에서 사용중인 함수 후킹 방법 [2]
5792Wi...1/18/2023322소스코드 Log Write 기능을 리스트업 질문 [9]
5791PLC1/16/2023459C# - 실시간 5개 룸 모니터링 [15]
5790집으...1/13/2023342[UI 멈춤 현상]deadlock 관련 글을 보고 혹시나 하고 문의 드립니다. [4]
5789손님1/10/2023401스레드와 Async Task [2]파일 다운로드1
5788kr11/10/2023378C# 에서 제공하는 컬렉션들의 차이점이 궁금합니다. [3]
5787st...1/10/2023361STACKOVERFLOW [1]
5786De...1/9/2023468익명 클래스 말고 익명 구조체는 불가능한걸까요? [4]
1  2  [3]  4  5  6  7  8  9  10  11  12  13  14  15  ...