分析DataGrid.SelectedItems(绑定到MySql DataTable)时要强制转换为的对象的类型

本文关键字:转换 类型 对象 SelectedItems DataGrid 绑定 DataTable MySql 分析 | 更新日期: 2023-09-27 18:00:08

我有一个简单的C# / WPF应用程序,它将MySql数据库读取到DataGrid中。

<DataGrid  Height="470" Width="800" AutoGenerateColumns="True" CanUserResizeColumns="True" CanUserReorderColumns="True" x:Name="DgrReadWrite" ItemsSource="{Binding ''}"  HorizontalAlignment="Center" VerticalAlignment="Center" HorizontalScrollBarVisibility="Visible" VerticalScrollBarVisibility="Visible" />

我将Sql数据加载到其中,如下所示:

string connStr = Service.getConnectionString();
string sql = "SELECT * FROM adat";
try
{
    MySqlConnection connection = new MySqlConnection(connStr);
    MySqlCommand cmdSel = new MySqlCommand(sql, connection);
    MySqlDataAdapter da2 = new MySqlDataAdapter(cmdSel);
    da2.Fill(this.dt2);
    DgrReadWrite.DataContext = dt2;
}
catch (Exception ex)
{
    MessageBox.Show("MySQL kapcsolódási hiba!", "Hiba!", MessageBoxButton.OK, MessageBoxImage.Error);
}

当我按下删除按钮时,会发生以下情况:

for (int i = 0; i < this.dt2.Rows.Count; i++)
{
    // looping through DgrReadWrite.SelectedItems.Cast<SomethingReadable??>
    if (somethingReadable[0] == this.dt2.Rows[i][0].ToString())
    {
        dt2.Rows[i].Delete();
        DgrReadWrite.Items.Refresh();
    }
}

我的问题是:我应该对所选项目进行什么类型的投射,以便在方法中理解它们?提前谢谢。

分析DataGrid.SelectedItems(绑定到MySql DataTable)时要强制转换为的对象的类型

使用DataRowView很容易解析数据。

 foreach (DataRowView drRow in DgrReadWrite.SelectedItems)
            {
                listOfRowsToDelete.Add(drRow.Row);
                // put index numbers into a string for MySQL query
                ids = ids + drRow["index"] + ",";
            }