【发布时间】:2019-08-05 09:23:27
【问题描述】:
在 WPF 项目中,我有一个带有名为 CommDataGrid 的 dataGrid 的页面。它包含几个列和一个复选框第二列:
<DataGrid x:Name="CommDataGrid"
AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding id}"/>
<DataGridTemplateColumn Header="ENTREE">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding dateEntree,StringFormat='dd/MM/yyyy'}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="ARTICLE" Binding="{Binding article}"/>
<DataGridTextColumn Header="N° PALETTE" Binding="{Binding numPal}"/>
<DataGridTextColumn Header="ADRESSE" Binding="{Binding picking}"/>
<DataGridTextColumn Header="PBRUT" Binding="{Binding SumPdsBrut}"/>
<DataGridTextColumn Header="POIDS NET" Binding="{Binding SumPdsNet}"/>
<DataGridTextColumn Header="LOT" Binding="{Binding MinLot}"/>
<DataGridTemplateColumn Header="DATE CONGELATION">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MinDatecong,StringFormat='dd/MM/yyyy'}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="DLUO">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding MinDLUO,StringFormat='dd/MM/yyyy'}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="ChoixPalette_Ckb"
CommandParameter="{Binding Path= id}">
</CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
用户可以检查一个或多个复选框。 在此页面中,我还有一个按钮。这是我想在该 Button 的 Click 事件中实现的目标: 对于所有选中的 CheckBox,它会获取 DataGrid (id) 第一列的值,然后添加代码来更新 SQL 数据库:
private void Valid_Checked_Palette_Btn_Click(object sender, RoutedEventArgs e)
{
DataGridRow row = (DataGridRow)CommDataGrid.ItemContainerGenerator.ContainerFromIndex(CommDataGrid.SelectedIndex);
CheckBox chk = CommDataGrid.Columns[10].GetCellContent(row).Parent as CheckBox;
foreach(CheckBox c in CommDataGrid.Items)
{
if (chk.IsChecked==true)
{
object id = ((CheckBox)sender).CommandParameter;
int _id = Convert.ToInt32(id);
Messages.InformationMessage($"You Checked {_id}");
// Code will be added later...
}
}
}
当然,这段代码是行不通的。有人可以让我进入赖特的方向吗? 谢谢
【问题讨论】:
标签: wpf linq-to-sql