2010-11-20 26 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); 

回答

0

,如果你想提出一个RoutedEvent,只需拨打this.Raise(...);

如果你是在一个静态方法调用,调用它像这样:

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

@serhio:您可以使用您的单曲'。 – Vlad 2010-11-20 21:45:43

+0

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

+0

@serhio:...或其他是你的事件的正确参数(应该在'SelectedChangedEvent'声明中看到) – Vlad 2010-11-20 21:51:29