我正在开发一个WPF Windows应用程序,我需要一个帮助才能解决其中的一些问题。
我有一个数据网格视图;这是一个XML:
<DataGrid x:Name="MyDataGrid" Margin="0,55.333,8,209.692" Width="273.27">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" IsReadOnly="True" Binding="{Binding ID}" Visibility="Hidden" />
<DataGridTextColumn Header="CopID" IsReadOnly="True" Binding="{Binding CopID}" Visibility="Hidden"/>
<DataGridTextColumn Header="CgID" IsReadOnly="True" Binding="{Binding CgID}" Visibility="Hidden"/>
<DataGridTextColumn Header="Item Names" Width="190" IsReadOnly="True" Binding="{Binding ItemName}"/>
<DataGridCheckBoxColumn Header="Select" CanUserReorder="False" />
</DataGrid.Columns>
</DataGrid>
我想在循环中检查DataGridCheckBoxColumn CheckBox
是真还是假
我希望这是用户点击按钮时读取列值;这是代码:
for (int i = 0; i < MyDataGrid.Items.Count - 1; i++)
{
/*Some code here for Check CheckBox True or False*/
for (int j = 0; j < MyDataGrid.Columns.Count; j++)
{
string Massage = (MyDataGrid.Items[j] as DataRowView).Row.ItemArray[3].ToString();
MessageBox.Show( Massage);
}
}
我想在循环中检查CheckBox
是true还是false以获取该行的值。CheckBox
的列已被检查我希望有人可以帮助我
竞争我已经放弃的代码。我希望这个代码在用户点击按钮时起作用,因为我必须在CheckBox
中MyDataGrid
为真的数据库中使用此循环保存记录。
当我检查CheckBox
电话选择全部时,我还想选中所有数据网格复选框。
我希望有些伙伴能尽快帮助我
谢谢
答案 0 :(得分:1)
我首先会说,通常情况下,你不应该这样做,这就是为什么它比你期望的更难。您通常应该访问基础DataSource而不是DataGrid本身中的Cells。
那就是说, 是可能的。例如:
private void ButtonBase_OnClick(object sender, RoutedEventArgs e)
{
const int CHECKBOX_COLUMN = 4;
for (int i = 0; i < MyDataGrid.Items.Count - 1; i++)
{
DataGridCell cell = GetCell(i, CHECKBOX_COLUMN);
CheckBox tb = cell.Content as CheckBox;
MessageBox.Show(tb.IsChecked.ToString());
}
}
函数GetCell()
(以及GetCell使用的内部函数)可以是found here