기본 콘텐츠로 건너뛰기

라벨이 WPF인 게시물 표시

WPF C# OperationCanceledException 그 외 예외

'System.OperationCanceledException'(mscorlib.dll) 쓰레드에서 중지 요청을 받았을 때 발생하는 예외 'System.InvalidOperationException'(WindowsBase.dll) 이미 없어진 객체 접근했을 때 발생하는 예외 'System.NotSupportedException'(PresentationCore.dll) 파일 같은 특정 스트림에 접근하려 했으나 실패한 경우 위 같은 예외는 https://docs.microsoft.com/ko-kr/dotnet/api/system.notsupportedexception?view=netframework-4.8 아래 사진 저 곳에서 검색하는게 편하다.

WPF InvalidOperationException - 1

foreach문 수행중 컬렉션이 수정 되었을때  발생한다. for문을 쓰는 방법도 있으나 컬렉션이 수정 되는 작업 자체가 발생하면 안된다. ----------------------------------------------------------------------------------------- System.InvalidOperationException: 컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.    위치: System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)    위치: System.Collections.Generic.List`1.Enumerator.MoveNextRare()    위치: System.Collections.Generic.List`1.Enumerator.MoveNext()    위치: ***.cs:줄 774 -----------------------------------------------------------------------------------------

WPF foreach InvalidOperationException

System.InvalidOperationException: '컬렉션이 수정되었습니다. 열거 작업이 실행되지 않을 수도 있습니다.' foreach를 이용해서 돌던중에 컬렉션이 수정된 것이다. foreach 동안 컬렉션을 수정하지 않는게 제일 좋고 for문을 이용하는 방법이나 try catch로 묶는 방법도 있겠지만 좋은 방법은 아니다.

WPF UpdateSourceTrigger

바인딩 소스 (데이터) 업데이트의 타이밍을 결정한다. MSDN에는 결정하는 값을 가져오거나 설정한다고 되어있다. 그 말이 그말..  4가지가 있는데 PropertyChanged 는 즉시 Default는 대부분 PropertyChanged이다. Explicit(명백한)는 UpdateSource를 호출 할때만 LostFocus는 포커스를 잃을때마다(Text일때 기본값)

WPF IValueConverter

데이터 바인딩 시 가지고 있는 데이터 소스와 타겟 컨트롤의 데이터 타입이 다를 경우 타입 변경을 위해서 IValueConverter가 존재하며 IValueConverter를 구현하는 클래스가 변경을 담당한다. Convert(변환), ConvertBack(역변환) 두가지 함수를 구현한다.

WPF 엘리먼트

WPF 엘리먼트 오브젝트 엘리먼트: XAML의 엘리먼트는 닷넷 객체와 상응한다는 의미로 오브젝트 엘리먼트라고 한다.(object element) 어트리뷰트(attribute)는 두개가 있다. 프로퍼티 어트리뷰트(property attribute), 이벤트 어트리뷰트(event attribute) 말처럼 프로퍼티는 프로퍼티로, 이벤트는 이벤트로 사용된다. *단 XML네임스페이스는 CLR네임스페이스로 매핑 된다.*

WPF 타입 컨버터

XAML 파서나 컴파일러는 문자열을 적절한 데이터 타입으로 바꿔 주는 타입 컨버터를 찾는다.(type converter) 예시) XAML에서 순수 문자열 "White"을 System.Windows.Media.SolidColorBrush타입으로 변경해준다.