Dreamine.UI.Wpf
1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
Toggle main menu visibility
로딩중...
검색중...
일치하는것 없음
NumberComparisonConverter.cs
이 파일의 문서화 페이지로 가기
1
2
using
System.Globalization;
3
using
System.Windows.Data;
4
5
namespace
Dreamine.UI.Wpf.Converters
;
6
15
public
class
NumberComparisonConverter
: IValueConverter
16
{
65
public
object
Convert
(
object
value, Type targetType,
object
parameter, CultureInfo culture)
66
{
67
if
(value ==
null
|| parameter ==
null
)
68
return
false
;
69
70
if
(!
double
.TryParse(value.ToString(), CultureInfo.InvariantCulture, out
double
number))
71
return
false
;
72
73
string
expr = parameter.ToString()!.Trim();
74
75
var orParts = expr.Split([
"||"
], StringSplitOptions.RemoveEmptyEntries);
76
77
foreach
(var orPart
in
orParts)
78
{
79
var andParts = orPart.Split([
"&&"
], StringSplitOptions.RemoveEmptyEntries);
80
81
bool
andResult =
true
;
82
foreach
(var cond
in
andParts)
83
{
84
if
(!
EvaluateCondition
(number, cond.Trim()))
85
{
86
andResult =
false
;
87
break
;
88
}
89
}
90
91
if
(andResult)
92
return
true
;
93
}
94
95
return
false
;
96
}
97
130
private
bool
EvaluateCondition
(
double
number,
string
condition)
131
{
132
var tokens = condition.Split(
' '
, StringSplitOptions.RemoveEmptyEntries);
133
if
(tokens.Length != 2)
134
return
false
;
135
136
string
op = tokens[0];
137
if
(!
double
.TryParse(tokens[1], CultureInfo.InvariantCulture, out
double
threshold))
138
return
false
;
139
140
return
op
switch
141
{
142
">"
=> number > threshold,
143
">="
=> number >= threshold,
144
"<"
=> number < threshold,
145
"<="
=> number <= threshold,
146
"=="
=> Math.Abs(number - threshold) <
double
.Epsilon,
147
"!="
=> Math.Abs(number - threshold) >
double
.Epsilon,
148
_ =>
false
149
};
150
}
151
200
public
object
ConvertBack
(
object
value, Type targetType,
object
parameter, CultureInfo culture)
201
{
202
return
Binding.DoNothing;
203
}
204
}
Dreamine.UI.Wpf.Converters
Definition
AddOffsetConverter.cs:10
Dreamine.UI.Wpf.Converters.NumberComparisonConverter
Definition
NumberComparisonConverter.cs:16
Dreamine.UI.Wpf.Converters.NumberComparisonConverter.EvaluateCondition
bool EvaluateCondition(double number, string condition)
Definition
NumberComparisonConverter.cs:130
Dreamine.UI.Wpf.Converters.NumberComparisonConverter.ConvertBack
object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
Definition
NumberComparisonConverter.cs:200
Dreamine.UI.Wpf.Converters.NumberComparisonConverter.Convert
object Convert(object value, Type targetType, object parameter, CultureInfo culture)
Definition
NumberComparisonConverter.cs:65
Converters
NumberComparisonConverter.cs
다음에 의해 생성됨 :
1.17.0