2016-12-06 11 views
1

私はこれが私の初めてここに投稿され、WPFプログラミングの世界では新しい蜂です。私はstackoverflowプラットフォームを通してたくさんのことを学んできました。私の現在の問題は、私がそれのための解決策を見つけることができないので、私は壁に私の頭を強打している。 私は、データグリッドののItemsSourceとして設定されたデータを使用してOracleクエリ結果からデータグリッドを移入するプロジェクトをやっています。 私は(つまり、私は手動で列を追加したい)私のデータグリッドで「追加の列」を持つようにしたい、それが正常に動作しますが、問題があります。この列はデータセットによって読み込まれていません。代わりに、自動追加された列の1つに基づいて手動で追加された列に値を追加/挿入したいとします。例えば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); 
+0

MHが、私にとってそれはあなたが列を作るように見えますが、あなたは「バウンド」データセットに追加しないでください - 私は間違っている場合誰かが私をcorretていますが、 'ds'にこの列を追加しようとしたのですか?次に、行[x] .column ["..."]を通過して値を設定する必要がありますか? – TripleEEE

+0

コードが不完全なようです。 '//ここでは、データグリッドに列を追加することはできますが、この列に値を挿入することはできません。 ' - 列をまだ追加していません。作成したばかりです。コードブロック全体を提供できますか? –

+0

はい「バインドされた」データセットに列が追加されていないため、わかりません。コード例で表示できますか? @TripleEEE – Zak29

答えて

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

私たちがコメントを丁寧に説明した後、これが役に立ちます。

+0

BANG ON !!!!マット、あなたは私の一日を作った!私は十分にあなたに感謝することはできません。 あなたは間違いなく、データセットにデータセットを追加するのではなく、データグリッドに新しいカラムを追加しています。 これは機能します。もう一度たくさんありがとう:)) – Zak29

+0

@ Zak29うまく、私はあなたを助けることができました:)あなたのプロジェクトで良い外観:)) – TripleEEE

関連する問題