<< 【WPF】VisualTreeはVisualでないと駄目ー。 | main | 【WPF】ItemsControl.ItemsとItemsControl.ItemsSource >>

【WPF】ListBoxやListViewの行番号を出力する。

追記
下記の投稿は問題があることがわかりました。
VirtualizingStackPanel.VirtualizationMode="Recycling"では正常に動作しない。
1.色をしましまにするライブラリーにバグがある。
2.番号が正しく出力されない。

関連)
http://pro.art55.jp/?eid=1168229

-------------------------------------------------------------------

ListBoxやListViewの行番号を出力する。

Project and Source
Project and Source(修正)

ええと・・・前に書いたかもしれません。
思いつく限り書き殴っているので・・・ええ。

今回は、ListBoxやListViewの見た目の行番号を出力する方法を紹介します。
動きはこんな感じです。


ドラッグアンドドロップで行を交換します。

ListBoxやListViewの行番号を出力する。



ListBoxのItemは交換されていますが、
左端の行番号は上から順に0, 1, 2 ・・・となっていることが確認できます。

ListBoxやListViewの行番号を出力する。



いろいろ交換しても大丈夫。ええ。

ListBoxやListViewの行番号を出力する。

◆コード

今回は値コンバータを使用しました。

  class LineNumberConverter : IValueConverter
  {
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      var box = value as ListBoxItem;
      if (box == null)
        return string.Empty;
      var itemsControl = ItemsControl.ItemsControlFromItemContainer(box);
      return itemsControl.ItemContainerGenerator.IndexFromContainer(box);
    }

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
      throw new NotImplementedException();
    }
  }


XAMLの記述が面倒なのですが、下記のように書いています。

<TextBlock Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
  AncestorType={x:Type ListBoxItem},
  AncestorLevel=1},
  Converter={StaticResource lineNumberConverter}}"
  .../>



う〜ん。ちょっと面倒ですよね。

Project and Source
Project and Source(修正)
ListBoxItemをしましまにするライブラリーにバグが合ったので修正。


--------------
追記)
以前、作成したユーティリティでは
var box = value as ListBoxItem;
if (box == null)
  return string.Empty;
var itemsControl = ItemsControl.ItemsControlFromItemContainer(box);
return itemsControl.Items.IndexOf(ListBoxItem.Item);

と、記述しましたが、この違いがあるのかちょっと調べた方が良さそうです。
おそらくitemsControl.Items.IndexOf(ListBoxItem.Item);の場合は見た目の順序での番号がかえってくるはずですが、
ItemsControl.ItemsControlFromItemContainer(box)の場合は違うかもしれません。



コメント
コメントする









この記事のトラックバックURL
トラックバック
メモ: ListBox や ListView の行番号
創造的プログラミングと粘土細工 | 【WPF】ListBoxやListViewの行番号を出力する。 // 親の ItemsControl を取得して… var itemsControl = ItemsControl.ItemsControlFromItemContainer (item); // そいつの中での Index を聞く! var index = itemsControl.ItemContai
  • .knowledge
  • 2008/10/14 5:22 PM
calendar
    123
45678910
11121314151617
18192021222324
25262728293031
<< July 2010 >>
あわせて読みたい
あわせて読みたいブログパーツ
selected entries
categories
archives
recent comment
recent trackback
recommend
キャット・シッターの君に。
キャット・シッターの君に。 (JUGEMレビュー »)
喜多嶋 隆
私のイラストレータデビュー本です。
recommend
ビジュアライジング・データ ―Processingによる情報視覚化手法
ビジュアライジング・データ ―Processingによる情報視覚化手法 (JUGEMレビュー »)
Ben Fry
javaぽい言語Processingを用いたビジュアライジングデータ。タイトルの通りいかにデータを視覚化するかというところを解説した本、手法やプロセスに対して丁寧でかつ具体的な例を挙げているのでわかりやすく、また応用が利きます。すばらしい本です。
recommend
recommend
recommend
recommend
recommend
recommend
Essential .NET ― 共通言語ランタイムの本質
Essential .NET ― 共通言語ランタイムの本質 (JUGEMレビュー »)
ドン・ボックス,クリス・セルズ,Don Box,Chris Sells,吉松 史彰
recommend
recommend
recommend
Design rule index―デザイン、新・100の法則
Design rule index―デザイン、新・100の法則 (JUGEMレビュー »)
William Lidwell,Kritina Holden,Jill Butler
ユーザインターフェイス、ユーザビリティなどを考えたいならこの本をヒントにしてみるのも良いかと思います。
recommend
リファクタリング―プログラムの体質改善テクニック (Object Technology Series)
リファクタリング―プログラムの体質改善テクニック (Object Technology Series) (JUGEMレビュー »)
マーチン ファウラー,Martin Fowler,児玉 公信,平澤 章,友野 晶夫,梅沢 真史
Javaで書かれていますが、良本です。言語を覚えたら、まずこの本を読んでみましょう。
recommend
集合知プログラミング
集合知プログラミング (JUGEMレビュー »)
Toby Segaran
・・・挫折中の一本。
recommend
C#ではじめるWebサービスプログラミング
C#ではじめるWebサービスプログラミング (JUGEMレビュー »)
山崎 秀,笠原 一浩
動くモノが作れるから楽しい、この本で実現しましょう!
recommend
C#クックブック 第3版
C#クックブック 第3版 (JUGEMレビュー »)
Jay Hilyard,Stephen Teilhet
C#2.0からの移行を考えているならこの本がお勧めです。
recommend
LINQテクノロジ入門~Microsoft Visual Studio 2008による新たなクエリ構築技法~ (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ) (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ)
LINQテクノロジ入門~Microsoft Visual Studio 2008による新たなクエリ構築技法~ (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ) (マイクロソフトコンサルティングサービステクニカルリファレンスシリーズ) (JUGEMレビュー »)
赤間信幸
LINQ最強の入門本です。LINQの処理をイメージをわかりやすく解説されています。また、著者の赤間さんはわかりやすい解説をされることで超有名です。
recommend
Pro LINQ: Language Integrated Query in C# 2008 (Windows.Net)
Pro LINQ: Language Integrated Query in C# 2008 (Windows.Net) (JUGEMレビュー »)
Jr. Rattz Joseph C.
LINQをしっかり学びたい方にお勧めします。
recommend
recommend
WPF Recipes in C# 2008: A Problem-Solution Approach (Expert's Voice in .Net)
WPF Recipes in C# 2008: A Problem-Solution Approach (Expert's Voice in .Net) (JUGEMレビュー »)
Sam Noble,Sam Bourton,Allen Jones
WPFの基礎を一通り学習したら、この本を手に取りましょう。WPFのHowToやDeepな情報を得ることが出来ます。かなりお勧めです。
(注意:サンプルコードのレイアウト設計は間違ってるので注意です)
links
profile
search this site.
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM
JUGEMのブログカスタマイズ講座