質問するログイン新規登録

回答編集履歴

1

wpfやprismに関する処理を削除してただのプロパティな処理に変更、ソース内に補足コメントを追加

2019/01/26 07:50

投稿

len_souko
len_souko

スコア1367

answer CHANGED
@@ -14,45 +14,35 @@
14
14
 
15
15
 
16
16
  ```C#
17
- using System;
18
- using System.Collections.Generic;
19
- using System.Linq;
20
- using System.Text;
21
- using System.Threading.Tasks;
22
- using Prism.Mvvm;
23
17
 
24
- namespace WpfApp3
18
+ public class MainWindowVM : BindableBase
25
19
  {
20
+ // スライダーと出力値、最小値と最大値を入力する場合は
21
+ // publicなプロパティを用意してsetで大小比較や入力可能な範囲のチェックを入れる必要があります
22
+ //
23
+ private decimal sliderValueMin = 0.1M;
24
+ private decimal sliderValueMax = 1.0M;
26
- public class MainWindowVM : BindableBase
25
+ public decimal SliderValueDiff
27
26
  {
27
+ get { return sliderValueMax - sliderValueMin; }
28
+ }
28
29
 
29
- private static decimal sliderValueMin = 0.1M;
30
+ private int SlideResultValueMin = 300;
30
- private static decimal sliderValueMax = 1.0M;
31
+ private int SlideResultValueMax = 22000;
31
- public decimal SliderValueDiff
32
- {
33
- get { return sliderValueMax - sliderValueMin; }
32
+ private int SlideResultValueDiff = SlideResultValueMax - SlideResultValueMin;
34
- }
35
-
36
33
 
37
- private static readonly int SlideResultValueMin = 300;
38
- private static readonly int SlideResultValueMax = 22000;
39
- private static readonly int SlideResultValueDiff = SlideResultValueMax - SlideResultValueMin;
40
-
41
- private decimal slideInputValue = 0M;
34
+ private decimal slideInputValue = 0M;
42
- public decimal SlideInputValue
35
+ public decimal SlideInputValue
36
+ {
37
+ get { return slideInputValue; }
38
+ set
43
39
  {
44
- get { return slideInputValue; }
45
- set
46
- {
47
- SetProperty(ref slideInputValue, value);
40
+ slideInputValue = value;
48
- RaisePropertyChanged(nameof(SlideValue));
49
- RaisePropertyChanged(nameof(SlideResultValue));
50
-
51
- }
52
41
  }
42
+ }
53
- public decimal SlideValue => sliderValueMin + slideInputValue;
43
+ public decimal SlideValue => sliderValueMin + slideInputValue;
54
44
 
55
- public int SlideResultValue => (int)Math.Round((slideInputValue) * (SlideResultValueDiff / SliderValueDiff) + SlideResultValueMin);
45
+ public int SlideResultValue => (int)Math.Round((slideInputValue) * (SlideResultValueDiff / SliderValueDiff) + SlideResultValueMin);
56
- }
57
46
  }
47
+
58
48
  ```