我是wpf编程领域的新宠,这是我在这里发表的第一篇文章。我通过stackoverflow平台学到了很多东西(感谢这里的每一个人)。我目前的问题是让我把头撞在墙上,因为我无法找到解决方案。 我正在做一个项目,我使用数据集作为datagrid的ItemsSource从oracle查询结果填充数据网格。 它工作正常,但问题是,我想要一个" 附加列"在我的数据网格中(换句话说,我想手动添加一列)。此列未由数据集填充。相反,我想基于其中一个自动填充的列在手动添加的列中添加/插入值。
例如:如果我有一个值" A6 "在column1中,手动添加的列应显示" 执行器"在通讯单元格中。 请帮助我解决您知道的任何可能的解决方案。我要感激不尽! 如果我的问题有任何意义或太宽泛,请试试。如果你能理解任何事情并随意问我,请耐心等待。谢谢。
我的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="*">
我的Codebehind:
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);
答案 0 :(得分:0)
我建议你这样试试:
//...
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";
希望在我们在评论中进行讨论之后,这会有所帮助。