如何在wpf中的每一行的特定列中添加值?

时间:2016-12-06 11:55:26

标签: c# wpf oracle

我是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);

1 个答案:

答案 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";

希望在我们在评论中进行讨论之后,这会有所帮助。