WEBサイト制作・アプリ開発・システム開発・ブランディングデザイン制作に関するご相談はお気軽にご連絡ください。
構想段階からじっくりとヒアリングし、お客様の課題にあわせたアプローチ手法でお客様の“欲しかった”をカタチにしてご提案いたします。
Blog スタッフブログ
WPF
システム開発
[WPF][C#]DataGridの特定セルに動的にボタン追加
やり方
- 動的にボタン追加するので、複数追加可能なように、DataGridのカラム内に、StackPanelで箱を作る。(レイアウト)
- 対象のDataGridのセルを取得(コード)
- セルからStackPanel取り出す(コード)
- StackPanelにコードで作成したボタンを追加する(コード)
参考
【WPF】ここまで出来る!DataGridで多段表示!(DataGridTemplateColumn編)
WPF VisualStudio2010のDataGridのセルにアクセスする方法
サンプル
<DataGrid
Name="SampleDataGrid">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical" >
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
// 選択された行のデータ取得
var row = SampleDataGrid.ItemContainerGenerator.ContainerFromIndex(SampleDataGrid.SelectedIndex) as DataGridRow;
// その行の0番目のセル取得
var cell = SampleDataGrid.Columns[0].GetCellContent(row);
// StackPanelの取得(GetElementは参考サイト参照)
StackPanel stackPanel = GetElement<StackPanel>(cell);
// ボタンの作成
Button button = new Button();
// 諸々の設定を行う
// 省略
// stackPanelにボタンの追加
stackPanel.Children.Add(button);