ついにできた...
DataGrid
このスニペットを使用して作成しました:
var check = new FrameworkElementFactory(typeof(CheckBox));
dgDetalle.Columns.Add(new DataGridTemplateColumn()
{
CellTemplate = new DataTemplate() { VisualTree = check }
});
for (int i = 0; i < 4; i++)
{
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.Binding = new Binding(string.Format("[{0}]", i));
dgDetalle.Columns.Add(textColumn);
}
次に、選択したアイテムのデータを で表示するスニペットを作成しましたMessageBox
。
string testValues = "";
for (int i = 0; i < dgDetalle.Items.Count; i++)
{
DataGridRow row = (DataGridRow)dgDetalle.ItemContainerGenerator.ContainerFromIndex(i);
FrameworkElement cellContent = dgDetalle.Columns[0].GetCellContent(row);
CheckBox checkBox = VisualTreeHelper.GetChild(cellContent, 0) as CheckBox;
if (checkBox != null && (checkBox.IsChecked ?? false))
{
List<string> item = (List<string>)dgDetalle.Items[i];
foreach (var t in item)
{
testValues += t;
}
}
}
MessageBox.Show(testValues);
要約する:
- を使用して行を取得します
ItemContainerGenerator
- から特定の列を取得し、
DataGrid
それを汎用プレゼンテーション オブジェクトとして取得します ( FrameworkElement
) 。
- を使用してコンテンツを取得します
VisualTreeHelper
。CheckBox
最初のスニペットで I've createdを取得したことに注意してください
- 選択したアイテムを処理する
それが誰かに役立つことを願っています...!