Normally it is not possible to bind text to WinRT RichTextBlock as we do for TextBlock. RichTextBlock is devoid of Text dependency property. So the only way is to populate the Blocks property with paragraphs in code behind. But by simply declaring an attached property, we can achieve binding to text in RichTextBlock.

        public static string GetText(DependencyObject obj)
return (string)obj.GetValue(TextProperty);

public static void SetText(DependencyObject obj, string value)
obj.SetValue(TextProperty, value);

// Using a DependencyProperty as the backing store for Text. This enables animation, styling, binding, etc...
public static readonly DependencyProperty TextProperty =
DependencyProperty.RegisterAttached("Text", typeof(string), typeof(BindingHelper), new PropertyMetadata(String.Empty, OnTextChanged));

private static void OnTextChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e)
var control = sender as RichTextBlock;
if (control != null)
string value = e.NewValue.ToString();
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Run { Text = value });
 The XAML side binding will looks like below,
<RichTextBlock common1:BindingHelper.Text="{Binding ElementName=calendar, Path=SelectedDate}" />