お世話になっております。
WPF初心者でデータバインドの(書き方の)理解に苦しんでいるものです。
現在、TreeViewにデータを表示したいと思っており、ネット上のサンプルを見ながら
・表示したいオブジェクト(下の例ではfuga)
・自分と同じ型のリスト(下の例ではhoge)
を持つオブジェクトを階層構造で表示することは理解いたしました。
C#
1class hoge{ 2 public fuga Name; 3 public List<hoge> Child; 4} 5class fuga{ 6 Point A; 7 Point B; 8 public override ToString(){ 9 //省略 10 } 11}
ここで、fugaを配列(リスト)にして、Treeにはそのリストの中身とhogeを表示してほしいのですが、XAMLの書き方がわからず困っております.
また、デフォルトではToStringの戻値が表示されるようですが、指定したメソッドの戻り値を表示させるにはどうすればよいのでしょうか
よろしくお願いいたします。
C#
1class hoge{ 2 public List<fuga> Name; 3 public List<hoge> Child; 4} 5class fuga{ 6 Point A; 7 Point B; 8 public override ToString(){ 9 //省略 10 } 11}
よろしくお願いいたします。
追記---
イメージとしてこんな感じになります.
├hoge[0]┬fuga[0] │ ├fuga[1] │ ├fuga[2] │ ├hoge[0]┬fuga[0] │ │ ├fuga[1] │ │ ├hoge[0]・・・ │ │ ├hoge[1]・・・ │ ├hoge[1]・・・ ├hoge[1]・・・ ・ ・ ・
stringの配列とhogeクラスの関係が良くわからないのですが、Treeに表示したいのはstringの配列なのでしょうか?hogeなのでしょうか?
fugaのListである Name から Treeに表示する文字列をどうやって設定したらよいか?ということですかね?
言葉足らずでした.表示したいのはList<fuga>の要素です.おっしゃるとおりです
すみません、理解できていないですが、Treeに表示したいのは hoge で、Treeのノードとして表示される各々のhogeの名称を List<fuga>から生成したい、ということですかね?
TreeViewにhogeを表示し,その子要素としてList<fuga>とList<hoge>の両方を表示したいです.
あ,リストうまくいかないですね,質問本文を編集します
ん、 一番上の hoge[0] と fuga[0] などhogeとfugaが同じ階層あるということですかね?Treeなので入れ子構造ならわかりますが、同じ階層というのはあまり見たことのないですが。
やはり見かけない例なのですね…おっしゃるとおり同じ階層です。イメージは、Windowsのエクスプローラでしょうか。ファイルと、フォルダです。今のところfugaは入れ子になる予定はありませんが、hogeはガッツリ入れ子です。
fugaを一つしか内包しないhogeを作れば実現できますねこれ…ても、できれば最初に上げたやり方でやりたいです…
ん、fugaがファイルに相当し、hoge がフォルダに相当する、ということでしょうか?そうであれば、一番上のfuga[0]は一番上のhoge[0]の「下」にぶら下がるはずですよね(私が勘違いしているのでしょうか。。)
はい,そのとおりだと思います.
回答2件
あなたの回答
tips
プレビュー
