Windows Vista Beta | WinVistaBeta.com - Message | Accessing EventArgs of RoutedEvent in XAML

September 07, 2008  
Subject: Accessing EventArgs of RoutedEvent in XAML
Group: microsoft.public.windows.developer.winfx.avalon
Date: 6/17/2008 6:22:54 AM
From: Jens Weiermann [Email Address Protection]

Hi,

I'm relatively new to XAML, so please bear with me if I'm what I'm planning
to do is stupid. I'm not a big fan (yet) of the rather crazy syntax,
especially when using {binding} and name:spaces. But I like the strict
separation of logic and UI and would like to continue doing it that way.

I'm firing a custom RoutedEvent from my Window class and use this as an
event trigger in the XAML code. This works fine so far:

<EventTrigger RoutedEvent="foo:Window3.BarEvent">
<EventTrigger.Actions>
<BeginStoryboard>
...

I'm doing this to display an error message under certain conditions
(showing a big red and blinking panel to the user).

What I've not found out is how one can use the event args of the
RoutedEvent in the XAML code. I would like to pass the error message as a
parameter to that event, so the trigger can assign it to the text property
of a label control (probably by using an ObjectAnimationBase derived
animation). What I'm having in mind is something like this:

<EventTrigger RoutedEvent="foo:Window3.BarEvent">
<EventTrigger.Actions>
<BeginStoryboard>
<Storyboard Duration="00:00:10">
<ObjectAnimationUsingKeyFrames
Storyboard.TargetName="SomeLabel" Storyboard.TargetProperty="Text">
<DiscreteObjectKeyFrame KeyTime="00:00:00"
Value="{BarEventArgs:ErrorMessage}" />

However, I have not found a way to access the arguments passed to the
RoutedEvent in XAML code.

I'd appreciate any suggestions...

Thanks!
Jens

Back
Subject: Re: Accessing EventArgs of RoutedEvent in XAML
Group: microsoft.public.windows.developer.winfx.avalon
Date: 6/30/2008 4:33:43 AM
From: Jens Weiermann [Email Address Protection]

As a follow up to my own post: is this the right group to ask such
questions? I'm wondering because noone answered what I'd considered an easy
question...

Jens

Back