Click here to Skip to main content
Click here to Skip to main content

WPF: DataTrigger on a TextBlock!

, 8 Sep 2009
Rate this:
Please Sign up or sign in to vote.
So how does one add a DataTrigger to a TextBlock and provide some default value?

How does one add a DataTrigger to a TextBlock and provide some default value? Well, it's actually quite simple, but I have noticed that quite a few people fall down on this one. Firstly, you cannot have set a DataTrigger on anything that is not a Style, ControlTemplate, or DataTemplate. Great, so I will set up a Style for my TextBlock, right? The answer is yes, but you must ensure that you do not override the Text property in your TextBlock, and set the default value in the Style instead like this :

<style x:Key="StatusBlock"
  TargetType="TextBlock"
  BasedOn="{StaticResource {x:Type TextBlock}}">
    <setter Property="Text" Value="Default Text!"/>
</style>
<style .Triggers>
    <datatrigger 
      Binding="{Binding Path=CurrentView.IsRefreshing}"
      Value="true">
          <setter Property="TextBlock.Text"
                Value="Status: Refreshing! (please wait)..."/>
    </datatrigger>
</style>

Your TextBlock should be defined with the text not set, like this:

<textblock Style="{StaticResource StatusBlock}"/>

License

This article, along with any associated source code and files, is licensed under The GNU General Public License (GPLv3)

About the Author

Steve Psaltis
Software Developer
United Kingdom United Kingdom
We cannot achieve perfection but we can strive for excellence. Excellence through creativity that pushes innovation, collaboration that facilitates productivity, knowledge that empowers people and persistence that eventually pays off !
 
Enjoy what you do and do what you enjoy !

Comments and Discussions

 
GeneralMy vote of 1 PinmemberClifford Nelson5-Jun-12 8:23 
Tip, not article
GeneralMy vote of 3 PinmemberMahmudul Haque Azad9-Mar-11 19:48 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.

| Advertise | Privacy | Mobile
Web03 | 2.8.140709.1 | Last Updated 8 Sep 2009
Article Copyright 2009 by Steve Psaltis
Everything else Copyright © CodeProject, 1999-2014
Terms of Service
Layout: fixed | fluid