2012-04-25 17 views
0

私はそこにDataGridがあるウィンドウを含むWPFアプリケーションを持っています。起動時に、DataGridは完全に空であり、その列は実行時にコードによって作成されます。DataGridセル内のWPF Stackpanel

私はDataTableにバインドしています。最初のcoloumnは単一のテキストフィールドです。行ごとにもう1つのCellを表示する必要がありますが、スタックパネルとしてはUserControlを保持しています。

実際に私はStackPanelのプレースホルダーとして最初に空白の列を挿入し、その後StackPanelをコードから各セルに挿入しようとしています。

残念ながら私はいくつかの理由でそれを稼働させることはありません。私は新しいアイテムをセルに置くことはできません。誰でも助けてくれますか?

よろしく、

ジョナス

+1

で多くを説明してください、私たちにあなたのコードを教えてください –

答えて

1

試してみて、DataGridTemplateColumnを使用するには、あなたは、私が設計し、XAMLを経由してデータグリッドを埋めるために推薦する各セル

+1

こんにちは、 コードでこのDataGridTemplateColumnを設定するにはどうしたらいいですか? この例が見つかりましたが、実行できません: http://stackoverflow.com/questions/1104164/wpf-datagridtemplatecolumn-am-i-missing-something – redflag237

+0

xamlにデータテンプレートを指定してそれは名前。コード内でFindResourceを使用してデータテンプレートを取得します。次に、結果のDataGridTemplateColumnのCellTemplateを設定します。 –

+0

ええと、DataGridTemplateColumnはうまくいきました。私の間違いは、DataTemplateをDataGridの中に入れて、FindRessourceが見つけられなかったことです。私はWindows.Ressourcesタグに移動し、それは完璧に動作します。 もう一つの問題は、DataGrid内のStackPanelをコードで作成してObjektsで埋めても、どうやってこれにアクセスできますか? – redflag237

1

でのStackPanelを置くことができます。

  • YourItemsあなたは
  • userControlColumnを表示するオブジェクトのコレクションは、あなたのユーザーコントロールのための追加の列です
  • firstColumnはあなたの最初のDataGridTextColumn

    <DataGrid x:Name="myGrid" ItemsSource="{Binding YourItems}"> 
        <DataGrid.Columns> 
         <DataGridTemplateColumn x:Name="userControlColumn" Header="Column1"> 
          <DataGridTemplateColumn.CellTemplate> 
           <DataTemplate> 
            <StackPanel> 
             <ns:YourCustomControl/> 
            </StackPanel> 
           </DataTemplate> 
          </DataGridTemplateColumn.CellTemplate> 
         </DataGridTemplateColumn> 
         <DataGridTextColumn x:Name="firstColumn" Header="Columns2" Binding="{Binding YourDesiredProperty}"/> 
        </DataGrid.Columns> 
    </DataGrid> 
    
関連する問題