[トピック内 6 記事 (1 - 6 表示)] << 0 >>
いつもお世話になっております。 前回のご相談と関連した質問で申し訳無いのですが...... http://bbs.wankuma.com/index.cgi?mode=al2&namber=77811 今回はDataGridComboBoxColumnについてです。 やりたいことは、列毎に異なる値を持つコンボボックスの表示を、動的に行いたい、です。 例えば1列目では野菜の名前が入ってて、2列目には果物の名前が入ってる、といったような。 前回のご相談を踏まえ、バインディングについて学び、以下のようなコードを書いてみました。 DataGrid.Columns.Add(new DataGridComboBoxColumn() { Header = box, IsReadOnly = false, ItemsSource = "{Binding DataTable.Columns[\"box\"]}" }); DataTable.Columns.Add(new DataColumn("box", typeof(List<string>))); (正直書いてて無茶苦茶だとは思っているんですが......) このDataTableに、野菜の名前が入ったlistを入れたり、果物の名前が入ったlistを入れて、 動的にコンボボックスの中身を変える、そんなイメージのコードです。 で、結びついてるDataGridにどう出たかと言いますと、 https://gyazo.com/88759e82ee4562fe3f535f01992fc7ab このように、文字列が縦?に出てきました。 試しにEnumクラスを作ってItemsSource = "{Binding Enumほにゃらら}" みたいなことをしても、同様の結果となりました。 何故このような結果になったのか、 列毎に異なる値をxamlを使用せずに実現できるのか、 ご存知の方がいらっしゃいましたら、ご指導ご鞭撻のほど、お願いします.......以上です。
確認ですが。 "列ごとに異なる"でいいんですよね? つまり、 id a b 1 apple Tokyo 2 banana Osaka のように、各行ともに a列は { apple, banana, pair, orange, ... } の中から選択。 b列は { Hokkaido, Aomori, Akita, Iwate, ... } の中から選択。 という形が希望と言うことで良いんですよね?
管理者用
- Child Tree -