Bonjour,
Pourriez-vous me donner l'équivalent de ce code Behind d'un binding en XAML?
voici le code de mon UserControl. Je lie le texte de ma textbox à ma Dependency Property Valeur.
Code Behind
--------------
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100 using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows; using System.Windows.Controls; using System.Windows.Data; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; using System.Windows.Navigation; using System.Windows.Shapes; namespace Verification_Lotto { /// <summary> /// Interaction logic for NumericUpDown.xaml /// </summary> public partial class NumericUpDown : UserControl { Binding bind; public int Valeur { get { return (int)GetValue(ValeurProperty); } set { SetValue(ValeurProperty, value); } } public static readonly DependencyProperty ValeurProperty = DependencyProperty.Register("Valeur", typeof(int), typeof(NumericUpDown), new UIPropertyMetadata(0, onValeurPropertyChanged )); private static void onValeurPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) { } public NumericUpDown() { InitializeComponent(); bind = new Binding(); bind.Source = this; bind.Mode = BindingMode.TwoWay; bind.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged; bind.Path = new PropertyPath("Valeur"); this.txtNum.SetBinding(TextBox.TextProperty, bind); } private void btPlus_Click(object sender, RoutedEventArgs e) { if (this.Valeur < 42) { this.Valeur = this.Valeur + 1; } /*txtNum.Text = this.Valeur.ToString();*/ } private void btMoins_Click(object sender, RoutedEventArgs e) { if (this.Valeur > 1) { this.Valeur = this.Valeur - 1; } /*txtNum.Text = this.Valeur.ToString();*/ } private void txtNum_PreviewKeyDown(object sender, KeyEventArgs e) { Key tmp = e.Key; if (!(tmp.ToString() == "D1" || tmp.ToString() == "NumPad1" || tmp.ToString() == "D2" || tmp.ToString() == "NumPad2" || tmp.ToString() == "D3" || tmp.ToString() == "NumPad3" || tmp.ToString() == "D4" || tmp.ToString() == "NumPad4" || tmp.ToString() == "D5" || tmp.ToString() == "NumPad5" || tmp.ToString() == "D6" || tmp.ToString() == "NumPad6" || tmp.ToString() == "D7" || tmp.ToString() == "NumPad7" || tmp.ToString() == "D8" || tmp.ToString() == "NumPad8" || tmp.ToString() == "D9" || tmp.ToString() == "NumPad9" || tmp.ToString() == "D0" || tmp.ToString() == "NumPad0" || tmp.ToString() == "Back" || tmp.ToString() == "Return" || tmp.ToString() == "Enter" || tmp.ToString() == "Tab")) { e.Handled = true; } } private void txtNum_LostFocus(object sender, RoutedEventArgs e) { if (txtNum.Text == "" || txtNum.Text == " ") { txtNum.Text = "1"; } } } }
Code Xaml
------------
Code XAML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <UserControl x:Class="Verification_Lotto.NumericUpDown" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Height="24" Width="100"> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="75"></ColumnDefinition> <ColumnDefinition></ColumnDefinition> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition></RowDefinition> <RowDefinition></RowDefinition> </Grid.RowDefinitions> <TextBox Name="txtNum" Grid.Column="0" Grid.Row="0" Grid.RowSpan="2" PreviewKeyDown="txtNum_PreviewKeyDown" LostFocus="txtNum_LostFocus"></TextBox> <RepeatButton Name="btPlus" Grid.Column="1" Grid.Row="0" Content="+" FontSize="8" VerticalContentAlignment="Top" Click="btPlus_Click" Padding="0"></RepeatButton> <RepeatButton Name="btMoins" Grid.Column="1" Grid.Row="1" Content="-" FontSize="8" VerticalContentAlignment="Top" Click="btMoins_Click" Padding="0"></RepeatButton> </Grid> </UserControl>
Un grand merci.
Partager