I'm trying to create a re-usable textblock user control in WPF. The basic idea is as follows: 

* User does not directly specify the content of the textblock
* There are three dependancy properties in my user control called `IsToggled`, `ToggleTrueText`, and `ToggleFalseText`.
* The control will display `ToggleTrueText` if `IsToggled` is true; or display `ToggleFalseText` if `IsToggled` is false.
* When `IsToggled` changes during runtime, the text automatically changes to either `ToggleTrueText` or `ToggleFalseText`

I started by adding a `PropertyChangedCallback` to the `IsToggled` DP:

Code-behind of the UserControl:

```
public static readonly DependencyProperty IsToggledProperty =
        DependencyProperty.Register("IsToggled", typeof(bool), 
        typeof(TagToggle), new PropertyMetadata(new 
        PropertyChangedCallback(OnToggleStateChanged)));

public bool IsToggled
{
    get { return (bool)GetValue(IsToggledProperty); }
    set { SetValue(IsToggledProperty, value); }
}

//ToggleTrueText and ToggleFalseText are declared similarly to IsToggled

```

...

```
private static void OnToggleStateChanged(DependencyObject d, 
 DependencyPropertyChangedEventArgs e)
{
    ...
}

```

Xaml of the user control:

```
<Grid x:Name="LayoutRoot">
    <TextBlock x:Name="TheTextBlock" Text="{Binding WhatDoIBindTo}"/>
</Grid>

```

However, I'm not sure what would be the best way to ensure that `TheTextBlock` updates its text whenever IsToggled changes during runtime.