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

1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...
NoWriterDateCnt.TitleFile(s)
5904guest4/18/20232822[신규자료첨부] DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [4]파일 다운로드1
5903guest4/18/20232359fileSystemWatcher 이벤트 관련 질문입니다 [2]
5902guest4/17/20232922c#으로 USB 관련 질문 [2]
5901guest4/17/20232594내솔루션 판매 시 1.0.0.0 폴더와 Sqlite 배포 [5]
5900guest4/17/20233684DLL 'SQLite.Interop.dll'을 찾을 수 없습니다 [2]파일 다운로드1
5899guest4/17/20232684Dictionary와 Linq [4]
5898차가워4/17/20232452CNTK 교육 문의 [1]
5897guest4/17/20232471Socket스레드와 UI thread [4]
5896HAN4/16/20232384c언어 return 에 대해 궁금한게 있어요. [1]파일 다운로드1
5895guest4/15/20232185Drag and Drop - 모든 컨트롤 [2]
5894송부장4/14/20233478[질문] Visual Studio 2022에서 '도구 상자 항목 선택'의 'COM 구성 요소' 탭에서 ActiveX 목록이 보이지 않습니다. [3]파일 다운로드2
5893감사합니...4/14/20232202오라클 OLEDB방식 접속 후 SELECT 'TEST' TEST_VALUE FROM DUAL의 값이 이상합니다. [1]
5892한무4/14/20232469C# 으로 백그라운드에서 워드를 실행하여 매크로 실행이 가능 할까요? [2]
5891리세4/14/20232242안녕하세요.C# 서버프로그램에서의 Mysql 쿼리문제(다중쿼리 실행)에 대해 문의드립니다. [2]
5890guest4/14/20232820C# 프리랜서로 돈 벌려면 성태님 책 마스터하면 되나요? [6]
5889전예찬4/14/20232132C# 파일 복사 관련 질문 드립니다. [3]
5888정경구4/12/20232379C# 첫 환경 세팅과 관련해서 [4]
5887HAN4/12/20232032안녕하세요 파이썬도 공유 가능 할까요? [1]
5886guest4/11/20232404필요한 어셈블리만 다운로드 및 재로딩하는 방법에 관하여 [2]
5885guest4/11/20232262c#으로 드림위버같은 거 만들어볼려는데요 [6]
5884궁금이4/11/20232131부모 클래스에서 예외 발생시 힙 영역에 할당 ? [2]
5883코딩초짜4/9/2023201210c언어 usleep 에 대해서 요 [2]
5882조은현4/7/20232087선생님 안녕하세요! wpf의 성능 개선에 대해서 질문드려요! [1]파일 다운로드1
5881guest4/6/20232096static method - <에러메시지 Extension method must be defined in a non-generic static class> [4]
5880유비4/4/20231987WPF DataGrid CollectionView, IEditableCollectionView 관련 문의 [1]
5879guest4/4/20232220Async method의 에러 표시 [3]
1  [2]  3  4  5  6  7  8  9  10  11  12  13  14  15  ...