Befestigt Verhalten Handhabung eines Angefügten Ereignisses in WPF

Habe ich gegoogelt bezüglich dieser Frage, aber konnte nicht sammeln alle Informationen, und ich Frage mich, ob es möglich ist für ein angeschlossenes Verhalten zum behandeln eines angefügten Ereignisses??

Habe ich ein Ereignis in einer Klasse deklariert und ein Verhalten, dass ich mich Anhängen an ein TextBox-Steuerelement, das Ereignis wird ausgelöst, wenn eine Schaltfläche geklickt wird. Ich fügte hinzu, die Prozedur für dieses Ereignis in meinem Verhalten und schrieb die Logik der event-handler, aber es wird nicht ausgeführt. Also, ich Frage mich, ob es möglich ist für ein angeschlossenes Verhalten zum behandeln eines angefügten Ereignisses oder nicht?

class ResetInputEventClass
{
    public static readonly RoutedEvent ResetInputEvent =  EventManager.RegisterRoutedEvent("ResetInput",
      RoutingStrategy.Bubble,
      typeof(RoutedEventHandler),
      typeof(ResetInputEventClass));

    public static void AddResetInputEventHandler(DependencyObject d, RoutedEventHandler handler)
    {
        UIElement uie = d as UIElement;
        if (uie == null)
        {
            return;
        }
        uie.AddHandler(ResetInputEventClass.ResetInputEvent, handler);
    }

    public static void RemoveResetInputEventHandler(DependencyObject d, RoutedEventHandler handler)
    {
        UIElement uie = d as UIElement;
        if (uie == null)
        {
            return;
        }
        uie.RemoveHandler(ResetInputEventClass.ResetInputEvent, handler);
    }
}

Das ist meine Event-Klasse und dies ist, wie ich es im Umgang mit dem Verhalten

public class MyBehavior : Behavior<TextBoxBase>
{
    public MyBehavior()
    {
        //Insert code required on object creation below this point.

    }        

    protected override void OnAttached()
    {
        base.OnAttached();
        //Insert code that you would want run when the Behavior is attached to an object.
        ResetInputEventClass.AddResetInputEventHandler(AssociatedObject, OnResetInputEvent);
    }

    protected override void OnDetaching()
    {
        base.OnDetaching();
        //Insert code that you would want run when the Behavior is removed from an object.
        ResetInputEventClass.RemoveResetInputEventHandler(AssociatedObject, OnResetInputEvent);
    }

    private void OnResetInputEvent(Object o, RoutedEventArgs e)
    {
        //Logic
    }
}

Hier ist mein XAML Code:

<Grid x:Name="LayoutRoot">
    <StackPanel>
        <TextBox Margin="5" Text="Bye" TextWrapping="Wrap" Width="150">
            <i:Interaction.Behaviors>
                <local:MyBehavior/>
            </i:Interaction.Behaviors>
        </TextBox>
        <TextBox Margin="5" Text="Bye" TextWrapping="Wrap" Width="150">
            <i:Interaction.Behaviors>
                <local:MyBehavior/>
            </i:Interaction.Behaviors>
        </TextBox>
        <Button Name="MyButton" Content="Save" Width="50" Height="25" Click="MyButton_Click"/>
    </StackPanel>
</Grid>

und ich bin auslösen des Ereignisses in das click-Ereignis der Taste meine

private void MyButton_Click(object sender, RoutedEventArgs e)
{
    RoutedEventArgs eventArgs = new RoutedEventArgs(ResetInputEventClass.ResetInputEvent,e.OriginalSource);
    RaiseEvent(eventArgs);
}
InformationsquelleAutor Harsha | 2013-02-28
Schreibe einen Kommentar