Dreamine.UI.Wpf
1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
DataGridBehaviors.cs
이 파일의 문서화 페이지로 가기
1
using
System.Windows;
2
using
System.Windows.Controls;
3
using
System.Windows.Input;
4
using
System.Windows.Media;
5
6
namespace
Dreamine.UI.Wpf.Behaviors
7
{
16
public
static
class
DataGridBehaviors
17
{
26
public
static
readonly DependencyProperty
EnableClickToDeselectProperty
=
27
DependencyProperty.RegisterAttached(
28
"EnableClickToDeselect"
,
29
typeof(
bool
),
30
typeof(
DataGridBehaviors
),
31
new
PropertyMetadata(
false
,
OnEnableClickToDeselectChanged
));
32
65
public
static
bool
GetEnableClickToDeselect
(DependencyObject obj)
66
=> (bool)obj.GetValue(
EnableClickToDeselectProperty
);
67
100
public
static
void
SetEnableClickToDeselect
(DependencyObject obj,
bool
value)
101
=> obj.SetValue(
EnableClickToDeselectProperty
, value);
102
127
private
static
void
OnEnableClickToDeselectChanged
(DependencyObject d, DependencyPropertyChangedEventArgs e)
128
{
129
if
(d is not DataGrid dg)
return
;
130
131
if
((
bool
)e.NewValue)
132
{
133
dg.PreviewMouseLeftButtonDown -=
OnPreviewMouseLeftButtonDown
;
134
dg.PreviewMouseLeftButtonDown +=
OnPreviewMouseLeftButtonDown
;
135
}
136
else
137
{
138
dg.PreviewMouseLeftButtonDown -=
OnPreviewMouseLeftButtonDown
;
139
}
140
}
141
166
private
static
void
OnPreviewMouseLeftButtonDown
(
object
sender, MouseButtonEventArgs e)
167
{
168
if
(sender is not DataGrid dg)
return
;
169
170
// HitTest로 DataGridRow 찾기
171
var dep = e.OriginalSource as DependencyObject;
172
while
(dep !=
null
&& dep is not DataGridRow)
173
dep = VisualTreeHelper.GetParent(dep);
174
175
if
(dep is not DataGridRow row)
176
return
;
177
178
// 이미 선택된 행을 다시 클릭한 경우 → 선택 해제
179
if
(row.IsSelected)
180
{
181
// 포커스가 셀/행에 있을 때만 동작하도록 처리(원치 않는 해제 방지)
182
row.IsSelected =
false
;
183
e.Handled =
true
;
// 기본 선택 동작 막기 → RowDetails 닫힘
184
}
185
// 아니면 기본 동작(선택) 수행 → RowDetails 열림(VisibleWhenSelected)
186
}
187
}
188
}
Dreamine.UI.Wpf.Behaviors
Definition
AutoScrollListBoxBehavior.cs:5
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors
Definition
DataGridBehaviors.cs:17
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors.GetEnableClickToDeselect
static bool GetEnableClickToDeselect(DependencyObject obj)
Definition
DataGridBehaviors.cs:65
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors.OnEnableClickToDeselectChanged
static void OnEnableClickToDeselectChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
Definition
DataGridBehaviors.cs:127
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors.EnableClickToDeselectProperty
static readonly DependencyProperty EnableClickToDeselectProperty
Definition
DataGridBehaviors.cs:26
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors.OnPreviewMouseLeftButtonDown
static void OnPreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
Definition
DataGridBehaviors.cs:166
Dreamine.UI.Wpf.Behaviors.DataGridBehaviors.SetEnableClickToDeselect
static void SetEnableClickToDeselect(DependencyObject obj, bool value)
Definition
DataGridBehaviors.cs:100
Behaviors
DataGridBehaviors.cs
다음에 의해 생성됨 :
1.17.0