如何为wpf中的每一行添加特定列中的值?
问题描述:
我是wpf编程世界的新蜜蜂,这是我第一次在这里发布。我通过stackoverflow平台学到了很多东西(感谢这里的每一个人)。我目前的问题是让我在墙上碰撞,因为我无法找到解决方案。 我正在做一个项目,其中我使用数据集作为DataGrid的ItemsSource从Oracle查询结果填充数据网格。 它工作正常,但问题是,我想在我的数据网格中有一个“附加列”(换句话说,我想手动添加一列)。该列未被数据集填充。相反,我想基于自动填充的列之一在手动添加的列中添加/插入值。如何为wpf中的每一行添加特定列中的值?
例如:如果我在列1的值“A6”,手动添加的列应显示在相应小区“执行器”。 请帮助我解决任何可能的解决方案。我会很感激! Idk如果我的问题有意义或者它太宽泛。如果你无法理解任何事情并随时提问,请与我联系。谢谢。
我的XAML:
<DataGrid x:Name="datagrid1" FontSize="12" FontWeight="Bold" IsReadOnly="True"
SelectionUnit="FullRow" SelectionMode="Single"
VerticalAlignment="Bottom" HorizontalAlignment="Left" Height="Auto" Width="985" Margin="1,5,0,0"
CanUserResizeColumns="True" CanUserDeleteRows="False" CanUserAddRows="False" CanUserResizeRows="False" RowHeight="30"
CanUserReorderColumns="False" CanUserSortColumns="False" ColumnHeaderHeight="30" ColumnWidth="*">
我隐藏:
using (OracleCommand cmd = new OracleCommand("SELECT this, that, these, FROM table "
+ "WHERE somecolumn=:somecolumn", connection))
{
cmd.CommandType = CommandType.Text;
OracleParameter parm = new OracleParameter();
cmd.Parameters.Add("somecolumn", input.Text);
OracleDataAdapter oda = new OracleDataAdapter();
oda.SelectCommand = cmd;
DataSet ds = new DataSet();
oda.Fill(ds, "table");
datagrid1.ItemsSource = ds.Tables["table"].DefaultView;
DataGridTextColumn column = new DataGridTextColumn(); //here I am able to add the column to the datagrid but not able to insert values in this column
datagrid1.Columns.Add(column);
答
我建议你试试这样说:
//...
DataSet ds = new DataSet();
oda.Fill(ds, "table");
var table = ds.Tables["table"];
table.Columns.Add("Columnname",typeof(string));
table.Columns["Columname"].DefaultValue = "Actuator";
datagrid1.ItemsSource = table.DefaultView;
如果你想设置不同的行你可以这样走:
table.Rows[0]["Columnname"] = "somewhat";
希望这可以帮助我们讨论后评论。
对我来说,它看起来像你创建一个列,但你不会将它添加到“绑定”数据集 - 有人告诉我,如果我错了,但你是否尝试将此列添加到你的'ds'?那么你应该可以通过row [x] .column [“...”]并设置值,否? – TripleEEE
看起来你的代码不完整。 '//这里我可以将列添加到数据网格中,但无法在此列中插入值。
是的,我不是将列添加到“绑定”数据集,因为我不知道它。你能用代码示例展示它吗? @TripleEEE – Zak29