久々の記事で、XAMLの話題です。
よく見かけるこんなソース
<Grid>
<TextBlock Text="{Binding Hoge, Mode=OneWay}" />
</Grid>
なんの疑問もなく使っていて、こういう構文なんだなあと思っていたのですが、実はこういう書き方もできるみたいです。
<Grid>
<TextBlock>
<TextBlock.Text>
<Binding Path="Hoge" Mode="OneWay" />
</TextBlock.Text>
</TextBlock>
</Grid>
"{}"を使った構文は短縮形だったんですねぇ!
追記 2012/08/14
これ、マークアップ拡張(Markup extensions)って言うんですね。MSDN - マークアップ拡張機能と XAML
http://msdn.microsoft.com/ja-jp/library/ms747254(v=vs.80).aspx
BindingやStaticResource、x:Type、x:Static などはこうの仕組みを使っているんですね。
ちなみに、自分でマークアプ拡張を定義することもできるそうです。
かずきのBlog - [C#][WPF]マークアップ拡張の作り方
http://blogs.wankuma.com/kazuki/archive/2008/03/30/130476.aspx