【问题标题】:DataGrid with checkbox event带有复选框事件的 DataGrid
【发布时间】:2020-04-03 19:15:14
【问题描述】:

现在考虑我有这个简单的数据网格

这是我的 xaml

<DataGrid HorizontalAlignment="Left"
          Height="362"
          Margin="10,55,0,0"
          VerticalAlignment="Top"
          Width="362"
          x:Name="table">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn />
    </DataGrid.Columns>
</DataGrid>

触发此信息的代码

        MySqlCommand cmd = m.getmodel("select * from "+equip+" where stored="+place);
        MySqlDataAdapter dataAdapter = new MySqlDataAdapter(cmd);
        DataTable data = new DataTable(equip);
        dataAdapter.Fill(data);
        table.ItemsSource = data.DefaultView;

现在重点是,每当我点击左边的这个复选框时,我需要将同一行的imei代码发送到c#代码,我需要存储选中行的imei,知道吗?

【问题讨论】:

    标签: c# wpf datagridview datagrid


    【解决方案1】:

    当您将bool 类型的DataColumn 添加到DataTable 时,DataGrid 将自动生成一个DataGridCheckBoxColumn,该DataGridCheckBoxColumn 链接到DataTable

    private void InitializeDataTable()
    {
      MySqlDataAdapter dataAdapter = new MySqlDataAdapter(cmd);
    
      DataTable data = new DataTable(equip);
      dataAdapter.Fill(data);
    
      var checkBoxColumn = new DataColumn("Select", typeof(bool));
      data.Columns.Add(checkBoxColumn);
      checkBoxColumn.SetOrdinal(0); // Move column to the beginning
    
      foreach (DataRow row in data)
      {
        row["Select"] = false;
      }
    
      table.ItemsSource = data.DefaultView;
    
      data.ColumnChanged += OnColumnChanged;
    }
    
    private void OnColumnChanged(object sender, DataColumnChangeEventArgs e)
    {
      var imei = e.Row["imei"];
    }
    

    【讨论】:

    • 你好,我已经测试了你的代码,没有给我输出imgur.com/TehiDVX,由于未知的原因我无法更改复选框,接下来我如何创建一个从相同的值获取值的处理程序行?
    • 您需要初始化行。我已经更新了答案。
    猜你喜欢
    • 2013-06-11
    • 1970-01-01
    • 1970-01-01
    • 2014-10-14
    • 2017-04-24
    • 1970-01-01
    • 2018-09-23
    • 2020-10-08
    • 1970-01-01
    相关资源
    最近更新 更多