Dreamine.MVVM.Behaviors.Wpf 1.0.5
Dreamine.MVVM.Behaviors.Wpf 산업 자동화 및 I/O 기능을 제공합니다.
로딩중...
검색중...
일치하는것 없음
Interaction.cs
이 파일의 문서화 페이지로 가기
1using Dreamine.MVVM.Behaviors.Core.Interfaces;
2using System;
3using System.Windows;
4
6{
15 public static class Interaction
16 {
25 public static readonly DependencyProperty BehaviorsProperty =
26 DependencyProperty.RegisterAttached(
27 "Behaviors",
28 typeof(BehaviorCollection),
29 typeof(Interaction),
30 new FrameworkPropertyMetadata(null, OnBehaviorsChanged));
31
56 public static BehaviorCollection GetBehaviors(DependencyObject obj)
57 {
58 ArgumentNullException.ThrowIfNull(obj);
59
60 BehaviorCollection? collection =
62
63 if (collection is not null)
64 {
65 return collection;
66 }
67
68 collection = new BehaviorCollection();
69 obj.SetValue(BehaviorsProperty, collection);
70
71 return collection;
72 }
73
98 public static void SetBehaviors(DependencyObject obj, BehaviorCollection? value)
99 {
100 ArgumentNullException.ThrowIfNull(obj);
101 obj.SetValue(BehaviorsProperty, value);
102 }
103
128 private static void OnBehaviorsChanged(
129 DependencyObject obj,
130 DependencyPropertyChangedEventArgs args)
131 {
132 BehaviorCollection? oldCollection = (BehaviorCollection?)args.OldValue;
133 BehaviorCollection? newCollection = (BehaviorCollection?)args.NewValue;
134
135 if (ReferenceEquals(oldCollection, newCollection))
136 {
137 return;
138 }
139
140 if (oldCollection is not null &&
141 ((IAttachedObject)oldCollection).AssociatedObject is not null)
142 {
143 oldCollection.Detach();
144 }
145
146 if (newCollection is not null)
147 {
148 newCollection.Attach(obj);
149 }
150 }
151 }
152}
static void OnBehaviorsChanged(DependencyObject obj, DependencyPropertyChangedEventArgs args)
static BehaviorCollection GetBehaviors(DependencyObject obj)
static void SetBehaviors(DependencyObject obj, BehaviorCollection? value)
static readonly DependencyProperty BehaviorsProperty