Dreamine.UI.Wpf 1.0.1
Dreamine.UI.Wpf 사용자 인터페이스 기능과 구성 요소를 제공합니다.
로딩중...
검색중...
일치하는것 없음
MathConverter.cs
이 파일의 문서화 페이지로 가기
1using System.Data;
2using System.Globalization;
3using System.Windows.Data;
4
6
15public class MathConverter : IValueConverter
16{
65 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
66 {
67 if (value is not int number)
68 return 0;
69
70 if (parameter is not string operate || string.IsNullOrWhiteSpace(operate))
71 return number;
72
73 string expr = $"{number}{operate}";
74
75 object resultObj;
76 try
77 {
78 // null 대신 string.Empty로 주면 nullable 경고/분석 꼬임이 줄어듭니다.
79 resultObj = new DataTable().Compute(expr, string.Empty);
80 }
81 catch
82 {
83 // 연산 문자열이 이상하면 원본 반환
84 return number;
85 }
86
87 // Compute 결과가 null/DBNull일 수 있으니 방어
88 if (resultObj is null || resultObj is DBNull)
89 return number;
90
91 // Compute은 보통 double/decimal 등을 뱉을 수 있음 → int로 안전 변환
92 if (resultObj is IConvertible)
93 {
94 try
95 {
96 return System.Convert.ToInt32(resultObj, CultureInfo.InvariantCulture);
97 }
98 catch
99 {
100 return number;
101 }
102 }
103
104 return number;
105 }
106
163 public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
164 {
165 throw new NotImplementedException();
166 }
167}
object Convert(object value, Type targetType, object parameter, CultureInfo culture)
object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)