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

... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...
NoWriterDateCnt.TitleFile(s)
5201김대훈8/3/201917182상속시 생성자에 대해 질문드립니다 [3]
5200농상7/30/201920406foreach로 데이터 변경 [2]
5190오리다람7/20/201917206질문드립니다. [3]
5189진우7/19/201916152C# 스레드풀 코어별 실행 문의 [2]
5188황태관7/19/201915777비주얼베이직 2019 실행 할때 마다.. [3]
5187플하7/19/201919185UWP 관련 궁금한 사항에 대해서 [1]
5186김대훈7/14/201917978박싱과 언박싱에 대해 [2]
5185농상7/13/201916235Nullable에 대해서 [1]
5184김대훈7/4/201915843저자님의 책을 다 본후에는 [2]
51837/2/201917490.NET Compact Freamwork 컨트롤러 더블버퍼링 [1]
5182wpf ...7/2/201916849wpf 질문 드립니다. [1]파일 다운로드1
51817/1/201918724DataGridview Doublebuffer 에 대해서 질문드립니다. [2]
5180김대훈6/25/201918178배열과 반복문에서 질문드립니다 [2]
5177농상6/13/201920880멀티스레드 건의 [2]
5176이선호6/13/201917598안녕하세요. 닷넷 문제로 검색하다 알게되어 들어왔습니다. 현재 IIS 문제가 있어 질문드립니다. [1]
5175Chobo6/12/201917672WPF Ellipse 그리기! [3]
5174농상6/11/201917255ThreadPool 조인에 관해 [1]
5173전우치6/9/201918012공유 리소스에 대한 스레드 동기화 처리를 위해서 lock 이용 시 문의 [3]
5172김대훈6/7/201916746너무힘드네요 공부에 대한조언부탁드립니다 [2]
5171조남석6/4/201916167EX)11-2(treeview)에 대한 질문입니다. [3]
5170레리6/4/201917050Setup 프로젝트 레지스트리 설정 관련 질문입니다. [1]파일 다운로드1
5169농상6/3/201916716멀티스레드 파라미터 관련 [2]
5168익명유저5/30/201916213항상 정말 감사드립니다... [1]
5167WPF5/23/201916880질문드립니다. [1]
5165이대희5/22/201915421Visual Studio 설치 구성요소 문의 (C# 7.3 개정판 관련) [1]
5164레드5/21/201918292실행 과정과 실행파일 디버그 시 Icon변경 질문드립니다. [5]
... 16  17  18  19  20  21  22  23  24  25  26  27  28  [29]  30  ...