2010-11-20 4 views
0
// Property 
    IsSelectedProperty = DependencyProperty.Register("IsSelected", typeof(bool), typeof(MyControl),new UIPropertyMetadata(false, 
     new PropertyChangedCallback(OnIsSelectedChanged))); 

    // Event 
    public event RoutedEventHandler SelectedChanged 
    { 
     add { AddHandler(SelectedChangedEvent, value); } 
     remove { RemoveHandler(SelectedChangedEvent, value); } 
    } 

    // How Do I Raise the Event ??? 
    static void OnIsSelectedChanged(DependencyObject source, DependencyPropertyChangedEventArgs e) 
    { 
     var s = (MyControl)source; 

     // ???? 
     s.OnSelectedChanged(source, EventArgs.Empty); 

Répondre

0

si vous essayez d'élever un RoutedEvent, il suffit d'appeler this.Raise(...);

si vous appelez dans une méthode statique, appelez-le comme suit:

((MyControl)s).Raise(new RoutedEventArg(MyControl.MyEvent)); 
+0

@serhio: Vous pouvez utiliser votre 's '. – Vlad

+0

@serhio: 's.RaiseEvent (EventArgs.Empty)' (http://msdn.microsoft.com/en-us/library/system.windows.uielement.raiseevent.aspx) – Vlad

+0

@serhio: ... ou autre sont les arguments corrects pour votre événement (doit être vu à la déclaration 'SelectedChangedEvent') – Vlad