#146 – Use GetValueSource Method to Find the Source of a Dependency Property Value

It’s often helpful to determine the source of the current value of a dependency property.  You can use the DependencyPropertyHelper.GetValueSource method to do this.

In the following example, the source for the value of the Foreground property alternates between the style and the style trigger, based on the value of the IsEnabled property.

    <Window.Resources>
        <Style x:Key="redgreenButton" TargetType="{x:Type Button}">
            <Setter Property="Foreground" Value="Green"/>
            <Style.Triggers>
                <Trigger Property="IsEnabled" Value="False">
                    <Setter Property="Foreground" Value="Red"/>
                </Trigger>
            </Style.Triggers>
        </Style>
    </Window.Resources>
    <StackPanel Orientation="Vertical">
        <Button Content="A Button" Height="23" Width="75" Style="{StaticResource redgreenButton}" Name="btnTest"/>
        <Button Content="Enable/Disable" Height="24" Width="100" Name="btnDisable" Click="btnDisable_Click"/>
        <Button Content="Display Source" Height="24" Width="100" Name="btnDisplay" Click="btnDisplay_Click"/>
    </StackPanel>


Here’s the code for the Display button’s Click event, which uses GetValueSource to report the base value source.

        private void btnDisplay_Click(object sender, RoutedEventArgs e)
        {
            ValueSource vs = DependencyPropertyHelper.GetValueSource(btnTest as DependencyObject, Button.ForegroundProperty);
            MessageBox.Show(string.Format("Source for Foreground property: {0}", vs.BaseValueSource));
        }
About these ads

About Sean
Software developer in the Twin Cities area, passionate about .NET technologies. Equally passionate about my own personal projects related to family history and preservation of family stories and photos.

One Response to #146 – Use GetValueSource Method to Find the Source of a Dependency Property Value

  1. Pingback: Tweets that mention #146 – Use GetValueSource Method to Find the Source of a Dependency Property Value « 2,000 Things You Should Know About WPF -- Topsy.com

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.

Join 234 other followers

%d bloggers like this: