C#

silverlight-virtualizing-treeview の改善(CheckBox追加、Templateでカスタマイズ可能に)

Silverlightで仮想化されたTreeViewを作ってみました - Enjoy*Study onozaty/silverlight-virtualizing-treeview 先週末に作った仮想化したTreeViewに対して、今週末で下記を対応しました。 Templateでカスタマイズが可能なようにGeneric.xamlに規定のTempla…

Silverlightで仮想化されたTreeViewを作ってみました

Visual Studio Express 2013 for WebでSilverlightが使えるか確認ついでに、仮想化されたTreeViewを作ってみたので、Githubにあげました。 onozaty/silverlight-virtualizing-treeview Silverlightの標準のTreeViewは、仮想化されていないため、大量のItemを…

ItemContainerGenerator#ContainerFromItem で表示済みの項目を確実に取得する方法

画面に表示されている項目でも、ItemContainerGenerator#ContainerFromItem でnullを返す場合があります。 たとえば、ItemsSourceに設定してすぐのタイミングなど。 Dispatcher.BeginInvokeなどで取得タイミングをずらすことによって回避できる場合もありま…

UIElement#AddHandler を使うと、ルーティングイベントで処理済みとして止められてしまったものも拾える

指定したルーティング イベントのルーティング イベント ハンドラーを、現在の要素のハンドラー コレクションに追加します。 イベント ルート上の他の要素により既に処理済みとしてマークされているルーティング イベントに対し、指定したハンドラーが呼び出…

空のシーケンスに対するLinqのEnumerable.Allは一律Trueを返す

Enumerable.All(TSource) メソッド (System.Linq) シーケンスのすべての要素が条件を満たしている場合にTrueなので、てっきり空のシーケンスは1件も条件を満たすものが無いので一律Falseを返すものと思いきや、Trueを返してきました。 Anyの方はFalseを返し…