Hyperlink にバインディングする

こんばんは、siokoshou です。.NET Framework 3.5 SP1 の自動更新が太平洋標準時刻 1/27 に予定されているそうです。11月と言ってたけど、SP1 に対するパッチが遅れているんでしょうか。2.0 や 3.0 も更新されると思うので、ご注意を。

さて、Hyperlink は Command が呼べるのでとても重宝します。しかーし!Hyperlink は文字列をバインディングで設定できません!ぐぐってみるといくつか対処が見つかりました。Hyperlink の中に Textblock を入れる、または、Button のコンテンツを Hyperlink にする、だそうな。

XAML:
<Window x:Class="Hyperlink.Window1"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  Title="Window1" Height="300" Width="300">
  <TextBlock>
    <Hyperlink>
      <TextBlock Text="{Binding}" />
    </Hyperlink>
  </TextBlock>
</Window>

C#:
using System.Windows;

namespace Hyperlink
{
  public partial class Window1 : Window
  {
    public Window1()
    {
      InitializeComponent();
      this.DataContext = "Don't throw shoes.";
    }
  }
}

あまりスマートじゃない気もするけど、まあいっか。