(Using Silverlight 4.0 and VS 2010)
So I have created a property called Rank in my C# file. How do I now tie that to a control in the UserControl xaml file?
My code: (TopicListItem.xaml.cs)
#region Rank (DependencyProperty)
/// <summary>
/// Rank
/// </summary>
public int Rank
{
get { return (int)GetValue(RankProperty); }
set { SetValue(RankProperty, value); }
}
public static readonly DependencyProperty RankProperty =
DependencyProperty.Register("Rank", typeof(int), typeof(TopicListItem),
new PropertyMetadata(0, new PropertyChangedCallback(OnRankChanged)));
private static void OnRankChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((TopicListItem)d).OnRankChanged(e);
}
protected virtual void OnRankChanged(DependencyPropertyChangedEventArgs e)
{
}
#endregion Rank (DependencyProperty)
I want to do this in my TopicListItem.xaml
...
<Textblock Text="{TemplateBinding Rank}"/>
...
but that doesn’t really work.
If you need to bind a property in a Usercontrol’s xaml to a property exposed by the same UserControl then use the following pattern:-
Note that this makes the assumption that root content element inside the UserControl has been given the name “LayoutRoot”.