- 題名: DataRepeader上のComboBoxの制御についてです
- 日時: 2012/07/10 21:10:31
- ID: 30725
- この記事の返信元:
- (なし)
- この記事への返信:
- [30726] Re[1]: DataRepeader上のComboBoxの制御についてです2012/07/11 9:16:49
- ツリーを表示
■No30725に返信(やすぴょんPさんの記事)
短いサンプルですが、こんな感じでどうでしょう?
Public Class Form1
Private tbl As DataTable
Public Sub New()
' この呼び出しはデザイナーで必要です。
InitializeComponent()
' InitializeComponent() 呼び出しの後で初期化を追加します。
tbl = New DataTable()
With tbl.Columns
.Add("Col1", GetType(String))
.Add("Col2", GetType(String))
.Add("CmbDataSource", GetType(List(Of String)))
End With
AddHandler tbl.RowChanged, AddressOf tbl_RowChanged
DataRepeater1.DataSource = tbl
ComboBox1.DataBindings.Add("DataSource", tbl, "CmbDataSource")
ComboBox1.DataBindings.Add("SelectedValue", tbl, "Col1")
TextBox1.DataBindings.Add("Text", tbl, "Col2")
End Sub
Private Sub tbl_RowChanged(sender As Object, e As DataRowChangeEventArgs)
If e.Action <> DataRowAction.Add Then Exit Sub
e.Row("CmbDataSource") = New List(Of String) From {"a", "b", "c"}
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim row = tbl.NewRow()
tbl.Rows.Add(row)
End Sub
End Class
分類:[.NET]
visual basic 2010です。
表形式を表示するときにdatarepeaterを利用しておりますが
comboboxの制御がうまくいきません。
どなたか、わかる方教えていただけないでしょうか?
こちらであがいた結果です。
@デザインでデータリピーターを設定する。
Aプログラム側で領域に対してbindする。
Bテキストボックスには、bindしたデータが正しく投入される。
Cコンボボックスには指定したデータソースの先頭行が表示されている。
Dコンボボックスの内容を設定すると全行のコンボボックスが一括で変更されます。
※ CとDの制御が望んでいる形ではありません。
上記パターンから、ネット上をいろいろ調べてみるとItemClonedを利用して行うよいと
情報を得ましたので実装してみると以下の流れになりました。
Cは取得されたデータが表示されます。
Dがデータソースの指定が行えないため、選択すらできません。
ソースは量が多くて貼り付けできないのですが、上記内容でご回答いただけると助かります。