【发布时间】:2020-04-04 14:34:52
【问题描述】:
我有一个带有 mysql 数据和复选框列的数据网格
这里是代码
MySqlCommand cmd = m.getmodel("select * from " + equip + " where stored=" + type);
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.Rows)
{
row["Select"] = false;
}
data2.ItemsSource = data.DefaultView;
checkBoxColumn.ReadOnly = false;
XAML
<DataGrid Margin="736,166,10,130"
Grid.Column="4"
Grid.Row="4"
IsReadOnly="true"
CanUserAddRows="false"
x:Name="data2"
SelectionChanged="DataGrid_SelectionChanged" />
现在我只需要第一列是可编辑的,以允许用户使用复选框,请参见图片
我需要限制对除复选框列之外的其余数据的编辑 我在 xaml 中尝试过 Readonly,但它甚至在第一列中也限制了编辑 我不知道如何在使用 mysqlcommand 时手动添加行
【问题讨论】:
-
您可以通过编程方式添加限制。首先在你的 xml 中删除
IsReadOnly="true"然后 foreachdata2.Columnsas col,col.ReadOnly = trueexceptcol.Name == "Select" -
@TấnNguyên 你能写出完整的代码吗?我试过这个,但它给了我错误
-
我发布了我的代码
标签: c# wpf visual-studio datagridview