1
1
using System ;
2
2
using System . ComponentModel ;
3
3
using System . Windows ;
4
+ using Rubberduck . Settings ;
4
5
5
6
// credit to http://stackoverflow.com/a/2752538
6
7
namespace Rubberduck . UI . Controls
@@ -11,19 +12,40 @@ namespace Rubberduck.UI.Controls
11
12
public partial class NumberPicker : IDataErrorInfo
12
13
{
13
14
public static readonly DependencyProperty NumValueProperty =
14
- DependencyProperty . Register ( " NumValue" , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( null ) ) ;
15
+ DependencyProperty . Register ( nameof ( NumValue ) , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( default ( int ) , PropertyChangedCallback ) ) ;
15
16
public static readonly DependencyProperty MinNumberProperty =
16
- DependencyProperty . Register ( " MinNumber" , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( null ) ) ;
17
+ DependencyProperty . Register ( nameof ( MinNumber ) , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( default ( int ) , PropertyChangedCallback ) ) ;
17
18
public static readonly DependencyProperty MaxNumberProperty =
18
- DependencyProperty . Register ( "MaxNumber" , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( null ) ) ;
19
+ DependencyProperty . Register ( nameof ( MaxNumber ) , typeof ( int ) , typeof ( NumberPicker ) , new UIPropertyMetadata ( default ( int ) , PropertyChangedCallback ) ) ;
20
+
21
+ private static void PropertyChangedCallback ( DependencyObject source , DependencyPropertyChangedEventArgs args )
22
+ {
23
+ if ( source is NumberPicker control )
24
+ {
25
+ var newValue = ( int ) args . NewValue ;
26
+ switch ( args . Property . Name )
27
+ {
28
+ case "NumValue" :
29
+ control . NumValue = newValue ;
30
+ break ;
31
+ case "MinNumber" :
32
+ control . MinNumber = newValue ;
33
+ break ;
34
+ case "MaxNumber" :
35
+ control . MaxNumber = newValue ;
36
+ break ;
37
+ }
38
+ }
39
+ }
19
40
20
41
public int NumValue
21
42
{
22
43
get => ( int ) GetValue ( NumValueProperty ) ;
23
44
set
24
45
{
46
+ var old = GetValue ( MinNumberProperty ) ;
25
47
SetValue ( NumValueProperty , value ) ;
26
- OnPropertyChanged ( new DependencyPropertyChangedEventArgs ( NumValueProperty , NumValue - 1 , NumValue ) ) ;
48
+ OnPropertyChanged ( new DependencyPropertyChangedEventArgs ( NumValueProperty , old , value ) ) ;
27
49
}
28
50
}
29
51
0 commit comments