Dreamine.MVVM.Behaviors.Core 1.0.5
Dreamine.MVVM.Behaviors.Core 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
Dreamine.MVVM.Behaviors.Core.Base.Behavior< T > 클래스 템플릿 참조abstract

더 자세히 ...

Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >에 대한 상속 다이어그램 :
Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >에 대한 협력 다이어그램:

Public 멤버 함수

void Attach (DependencyObject dependencyObject)
void Detach ()

Protected 멤버 함수

virtual void OnAttached ()
virtual void OnDetaching ()
override Freezable CreateInstanceCore ()

속성

T? AssociatedObject [get, private set]
DependencyObject IAttachedObject. AssociatedObject [get]

상세한 설명

📌 Dreamine의 제네릭 기반 Behavior 클래스입니다. 연결 가능한 대상 객체를 제네릭 타입 T 로 명확히 지정하여, AssociatedObject를 타입 캐스팅 없이 직접 사용할 수 있도록 도와줍니다. Freezable을 상속하여 WPF의 리소스 시스템 및 XAML 지원을 보장하며, IAttachedObject 인터페이스를 통해 Behavior의 연결/해제를 관리합니다.

템플릿 파라메터
T연결할 대상 객체의 타입 (예: Window, Grid, Button 등)
타입 한정자들
T :DependencyObject 

BehaviorGeneric.cs 파일의 26 번째 라인에서 정의되었습니다.

멤버 함수 문서화

◆ Attach()

void Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.Attach ( DependencyObject dependencyObject)
inline

Behavior를 지정한 dependencyObject 에 연결합니다. 내부적으로 AssociatedObject에 저장되며, OnAttached()가 호출됩니다.

매개변수
dependencyObject연결할 DependencyObject 입니다. (예: Window, Grid 등)
예외
InvalidOperationException현재 객체 상태에서 Attach 작업을 수행할 수 없는 경우 발생합니다.

Dreamine.MVVM.Behaviors.Core.Interfaces.IAttachedObject를 구현.

BehaviorGeneric.cs 파일의 80 번째 라인에서 정의되었습니다.

81 {
82 if (dependencyObject is not T typed)
83 {
84 throw new InvalidOperationException(
85 $"Behavior<{typeof(T).Name}> requires a {typeof(T).Name} " +
86 $"but received {dependencyObject?.GetType().Name ?? "null"}.");
87 }
88
89 AssociatedObject = typed;
90 OnAttached();
91 }

다음을 참조함 : AssociatedObject, OnAttached().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ CreateInstanceCore()

override Freezable Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.CreateInstanceCore ( )
inlineprotected

WPF Freezable 객체를 생성하기 위한 팩토리 메서드입니다. Activator.CreateInstance()를 사용하므로 기본 생성자가 반드시 필요합니다.

반환값
현재 클래스 타입의 새로운 인스턴스

BehaviorGeneric.cs 파일의 147 번째 라인에서 정의되었습니다.

148 {
149 return (Freezable)Activator.CreateInstance(GetType())!;
150 }

◆ Detach()

void Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.Detach ( )
inline

현재 연결된 객체와의 연결을 해제합니다. OnDetaching()이 호출되고, AssociatedObject는 null로 초기화됩니다.

Dreamine.MVVM.Behaviors.Core.Interfaces.IAttachedObject를 구현.

BehaviorGeneric.cs 파일의 101 번째 라인에서 정의되었습니다.

102 {
103 OnDetaching();
104 AssociatedObject = null;
105 }

다음을 참조함 : AssociatedObject, OnDetaching().

이 함수 내부에서 호출하는 함수들에 대한 그래프입니다.:

◆ OnAttached()

virtual void Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.OnAttached ( )
inlineprotectedvirtual

Behavior가 연결되었을 때 호출되는 확장 포인트입니다. 하위 클래스에서 오버라이딩하여 부가 작업을 수행할 수 있습니다.

BehaviorGeneric.cs 파일의 115 번째 라인에서 정의되었습니다.

116 {
117 }

다음에 의해서 참조됨 : Attach().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

◆ OnDetaching()

virtual void Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.OnDetaching ( )
inlineprotectedvirtual

Behavior가 해제될 때 호출되는 확장 포인트입니다. 하위 클래스에서 오버라이딩하여 정리 작업 등을 수행할 수 있습니다.

BehaviorGeneric.cs 파일의 127 번째 라인에서 정의되었습니다.

128 {
129 }

다음에 의해서 참조됨 : Detach().

이 함수를 호출하는 함수들에 대한 그래프입니다.:

속성 문서화

◆ AssociatedObject [1/2]

DependencyObject IAttachedObject. Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.AssociatedObject
getprivate

IAttachedObject 인터페이스를 통해 노출되는 AssociatedObject입니다.

IAttachedObject 계약상 Attach() 이후에만 접근 가능합니다. Detach() 이후에는 null이지만 인터페이스 반환 타입은 non-nullable이므로 null-forgiving(!)을 사용합니다.

Dreamine.MVVM.Behaviors.Core.Interfaces.IAttachedObject를 구현.

BehaviorGeneric.cs 파일의 54 번째 라인에서 정의되었습니다.

◆ AssociatedObject [2/2]

T? Dreamine.MVVM.Behaviors.Core.Base.Behavior< T >.AssociatedObject
getprivate set

연결된 WPF 객체를 나타냅니다. Behavior가 Attach되면 이 속성에 대상 객체가 설정됩니다.

Dreamine.MVVM.Behaviors.Core.Interfaces.IAttachedObject를 구현.

BehaviorGeneric.cs 파일의 36 번째 라인에서 정의되었습니다.

36{ get; private set; }

다음에 의해서 참조됨 : Attach(), Detach().


이 클래스에 대한 문서화 페이지는 다음의 파일로부터 생성되었습니다.: