0

データベースからデータを取得して実行時に作成される DataGridView があります。データ グリッド ビューには、次の 4 種類の列があります。

  1. DataGridViewTextBoxColumn
  2. DataGridViewComboboxColumn
  3. DataGridViewButtonColumn
  4. DataGridViewCheckBoxColumn

その datagridview を作成するためのコードは次のとおりです。

    _form.DGV_.AutoGenerateColumns = False
    _form.DGV_.Columns.Clear()

    'Required Variables
    Dim pom_DataGridViewTextBoxColumn As DataGridViewTextBoxColumn = Nothing
    Dim pom_DataGridViewComboBoxColumn As DataGridViewComboBoxColumn = Nothing
    Dim pom_DataGridViewButtonColumn As DataGridViewButtonColumn = Nothing
    Dim pom_DataGridViewCheckBoxColumn As DataGridViewCheckBoxColumn = Nothing

    'Column-1 (ID: jntDate)
    pom_DataGridViewTextBoxColumn = New DataGridViewTextBoxColumn
    pom_DataGridViewTextBoxColumn.DataPropertyName = "jntDate"
    pom_DataGridViewTextBoxColumn.HeaderText = "Date"
    pom_DataGridViewTextBoxColumn.DefaultCellStyle.Format = "d"
    _form.DGV_.Columns.Add(pom_DataGridViewTextBoxColumn)

    'Column-2 (ID: jntAcc)
    pom_DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn
    pom_DataGridViewComboBoxColumn.DataPropertyName = "jntAcc"
    'Cond: If dataset Acc does not contain any table then add table from database.
    If Acc.Tables.Count > 0 Then
        pom_DataGridViewComboBoxColumn.DataSource = Acc.Tables.Item(0)
    Else
        Acc.Tables.Add(Tbl_Select("SELECT *, accNo AS byNo, accName as byName FROM tblAccounts", False, ""))
        pom_DataGridViewComboBoxColumn.DataSource = Acc.Tables.Item(0)
    End If
    'Cond: If _Account_Name_Number is True then set DisplayMember property to 'byName'.
    If _Account_Name_Number Then
        pom_DataGridViewComboBoxColumn.DisplayMember = "byName"
    Else
        pom_DataGridViewComboBoxColumn.DisplayMember = "byNo"
    End If
    pom_DataGridViewComboBoxColumn.ValueMember = "accID"
    pom_DataGridViewComboBoxColumn.HeaderText = "Account"
    _form.DGV_.Columns.Add(pom_DataGridViewComboBoxColumn)


    'Column-3 (ID: xxxx)
    pom_DataGridViewButtonColumn = New DataGridViewButtonColumn
    pom_DataGridViewButtonColumn.DataPropertyName = "xxxx"
    pom_DataGridViewButtonColumn.UseColumnTextForButtonValue = True
    pom_DataGridViewButtonColumn.HeaderText = "X"
    pom_DataGridViewButtonColumn.Text = "X"
    pom_DataGridViewButtonColumn.Width = 32
    pom_DataGridViewButtonColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    pom_DataGridViewButtonColumn.DefaultCellStyle.ApplyStyle(pom_DataGridViewButtonColumn.DefaultCellStyle)
    _form.DGV_.Columns.Add(pom_DataGridViewButtonColumn)

    'Column-4 (ID: jntReview)
    pom_DataGridViewCheckBoxColumn = New DataGridViewCheckBoxColumn
    pom_DataGridViewCheckBoxColumn.DataPropertyName = "jntReview"
    pom_DataGridViewCheckBoxColumn.HeaderText = "Review"
    pom_DataGridViewCheckBoxColumn.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
    pom_DataGridViewCheckBoxColumn.DefaultCellStyle.ApplyStyle(pom_DataGridViewCheckBoxColumn.DefaultCellStyle)
    _form.DGV_.Columns.Add(pom_DataGridViewCheckBoxColumn)

WPF アプリケーションでは、同じ DataGrid にこれら 4 つの列を設定する必要があります。WPF で DataGrid の 4 種類の列にデータを作成してバインドするにはどうすればよいですか?

4

1 に答える 1

1

csコードでこれらすべてをスキップしないのはなぜですか? データグリッドがより複雑なテンプレート、データ トリガー、カスタム スタイル、アニメーションなどを必要とするとき、あなたは隅に自分自身を固定し始め、壁にぶつかるでしょう.さらに、それは次の人だけでなく、あなたも。3 ~ 6 か月後に .cs コードで作成した獣に何かを追加/修正する必要がある場合、何が起こっているのかを理解するのにかなりの時間がかかる場合があります :)

代わりに、xaml ですべての作業を行い、UserControl を作成し、このデータグリッドをその中に入れ、DataContext を UserControl のさまざまなインスタンスから DataGrid に渡します。

于 2013-06-12T18:15:07.793 に答える