Dreamine.MVVM.Behaviors.Core 1.0.5
Dreamine.MVVM.Behaviors.Core 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
BehaviorGeneric.cs
이 파일의 문서화 페이지로 가기
1// Copyright (c) Microsoft. All rights reserved.
2// Licensed under the MIT license. See LICENSE file in the project root for full license information.
3
5using System.Diagnostics;
6using System.Windows;
7
9{
26 public abstract class Behavior<T> : Freezable, IAttachedObject where T : DependencyObject
27 {
36 public T? AssociatedObject { get; private set; }
37
55
80 public void Attach(DependencyObject dependencyObject)
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 }
92
101 public void Detach()
102 {
103 OnDetaching();
104 AssociatedObject = null;
105 }
106
115 protected virtual void OnAttached()
116 {
117 }
118
127 protected virtual void OnDetaching()
128 {
129 }
130
147 protected override Freezable CreateInstanceCore()
148 {
149 return (Freezable)Activator.CreateInstance(GetType())!;
150 }
151 }
152}
void Attach(DependencyObject dependencyObject)