Привет!
Сделал свой контрол NumberPicker, унаследованный от UserControl. Состоит он из TextBox-а и пары кнопок. В текстбоксе находится цифра, кнопки делают этой цифре +1 и -1. Помещаю этот свой контрол в основное окно - отображается, кнопки жмутся, +/-1 отрабатывает. Все нормально. Хочу теперь сделать в NumberPicker событие, на которое можно было бы подписаться в основном окне программы. Событие возникает при нажатии на кнопки. На данном этапе оно не срабатывает вообще.
Делаю следующее. В контроле пишу:
| Код | public static readonly RoutedEvent ClickButtonPlusMinusEvent; static NumberPicker() { ClickButtonPlusMinusEvent = EventManager.RegisterRoutedEvent( "ClickButtonPlusMinus", RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(NumberPicker) ); }
public event RoutedEventHandler ClickButtonPlusMinus { add { AddHandler(ClickButtonPlusMinusEvent, value); } remove { RemoveHandler(ClickButtonPlusMinusEvent, value); } }
|
Далее в обработчиках кнопок пишу:
| Код | private void Button_Click(object sender, RoutedEventArgs e) { int num = Int32.Parse(NumTextBox.Text); num--; NumTextBox.Text = num.ToString(); RoutedEventArgs е = new RoutedEventArgs(ClickButtonPlusMinusEvent, this); RaiseEvent(e); }
private void Button_Click_1(object sender, RoutedEventArgs e) { int num = Int32.Parse(NumTextBox.Text); num++; NumTextBox.Text = num.ToString(); RoutedEventArgs е = new RoutedEventArgs(ClickButtonPlusMinusEvent, this); RaiseEvent(e); }
|
В основном окне программы в xaml пишу:
| Код | <local:NumberPicker x:Name="Number" ClickButtonPlusMinus="Number_ClickButtonPlusMinus"/>
|
, в файле кода пишу:
| Код | private void Number_ClickButtonPlusMinus(object sender, RoutedEventArgs e) { Debug.WriteLine("qqq"); }
|
Но метод Number_ClickButtonPlusMinus не вызывается никогда.
Подскажите, пожалуйста, как сделать, чтоб оно заработало? |