お久しぶりです。
今回も .NET Framework のお話です。
XAML 系テクノロジを使って UI を作成していると、 INotifyPropertyChanged や INotifyCollectionChanged インターフェイスの実装が重要になってきます。
これらを実装しないと ViewModel から View へ変更の通知ができませんから。
そこで時々、INotifyCollectionChanged を実装した Dictionary が欲しくなるんです。
通常の Collection であれば、 System.Collections.ObjectModel.ObservableColleciotn<T> というクラスが用意されているのですが、
残念ながら ObservableDictionary<TKey, TValue> なんてクラスは用意されていません。。
2013年1月8日火曜日
2012年8月5日日曜日
XAMLを使っていて気づいたこと
全くBazaarの記事を更新していないのですが。
久々の記事で、XAMLの話題です。
よく見かけるこんなソース
実はこういう書き方もできるみたいです。
"{}"を使った構文は短縮形だったんですねぇ!
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
久々の記事で、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
登録:
投稿 (Atom)