見た目だけそれっぽい。

後輩が、とある画面で、DataGridの列にハイパーリンクを表示しようとしたらしい。

後輩:ちょっと良いっすか?
自分:ん?なに?
後輩:DataGridHyperlinkColumnを使おうとしてるんっすけど、どうにも動かないんすよ。
自分:どれどれ?
後輩:ほら。押しても反応ないっす。
自分:ほんとだ。

(注)実際は、こんなにチャラい訳ではありません。
見た目は、きっちりとハイパーリンクな感じに見えるんだけど、それだけ。まさに押した時のカスカス感がなんだか物悲しい。で、どうなってるんだと、この標準装備であるところのDataGridHyperlinkColumnを調べる事になった。
DataGridHyperlinkColumn クラス
この中のメモ欄にこう書かれてあった。

Hyperlink による移動が行われるのは、Hyperlink の直接または間接的な親がナビゲーション ホストである場合だけです。 ナビゲーション ホストの例には、NavigationWindow、Frame、または Microsoft Internet Explorer 6 以降および Firefox 2.0 以降など、XBAP をホストできるブラウザーが含まれます。

ナビゲーションホスト?
ナビゲーションホスト
引用:

ナビゲーション ホストは、コンテンツにナビゲートして表示することができるクラスです。

日本語って、横文字率が増えると訳わからなくなるな…。まあ、ブラウザの様に、「進む」や「戻る」でページ遷移し、さらに履歴を保持できるようなクラス上でなければ、動かないという事らしい。うーん。でもそれって、普通のWindow上では見た目だけって事になってしまう。TemplateColumnで作るって手もあるけど、一々同じテンプレートを設定するか、そのテンプレートを持ち運ぶ事になってしまう。
で、仕事では、DataGridHyperlinkColumnを拡張することにした。
続きを読む
スポンサーサイト
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0

[覚書]使い方に要注意

切り捨ては、Math.Floorで行う。decimalであれば、decimal.Truncateも有り。
var intVal = Math.Floor(123.45m);
似たようなメソッドで、Convert.ToInt32なんてものがあるが、あれはあまり使わない方が良い。
Convert.ToInt32 メソッド (Decimal)より抜粋

近似値の 32 ビット符号付き整数に丸められた value。 value が 2 つの整数の中間にある場合は、偶数が返されます。たとえば、4.5 は 4 に変換され、5.5 は 6 に変換されます。

とある。試してみると、
var intVal1 = Convert.ToInt32(4.5m);//intVal1 = 14
var intVal2 = Convert.ToInt32(44.5m));//intVal2 = 44
勘違いしてたんだけど、あくまで「中間」にあるときで、そうじゃないと四捨五入っぽい動きになる。
var intVal3 = Convert.ToInt32(44.56m);//45
うん。紛らわしいな。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: C# | コメント: 1 | トラックバック: 0

赤黒木かぁ。

 グラフ或いはチャートで書いた、WPF Toolkitのグラフコントロールを引き続き調査している。
 仕事でほしいグラフ(Series)は、散布図(Scatter)の点を線で結んだ多角形のような、いわゆる「ポリゴングラフ」。でも、当のライブラリに該当するクラスがない。なので、ソースコードをちまちま見ながら、どうやったら実装できるかを検証している。その中で、作られていたクラスに、「赤黒木」を内部で使ったMultiDictionaryがあった。
通常のDictionaryは、一つのキーに一つの要素しかもてない。MultiDictionaryは、一つのキーに複数の要素を持てるようにしたものらしい(自分は、要素をリストで持つようにして実現している)。
 このMultiDictionaryは、挿入、削除、検索なんかをもっと高速にできるようにする為のクラスなんだろう。
で、「赤黒木」ってなんだろ?と思い調べてみた。
赤黒木 (red-black tree)
left-leaning red-black tree
Left-Leaning Red-Black Tree by Java
二分木っぽいけど、似て非なるものかな。というか、こういうアルゴリズムがあると知らなかったので、書いている。
まずはこいつの理解から始めるか。
当サイトは基本をすっ飛ばしてます。基本文法等は、@ITをどうぞ
カテゴリー: WPF4 | コメント: 0 | トラックバック: 0

サイドバー背後固定表示サンプル

当ブログに書かれたソースコードは流用自由です。

バグ、スペルミス等はありうる事です。

ご利用の際は自己責任でお願いしますm(_ _)m