我试图在DataGridCheckboxColumn的复选框中进行切换,如果它在另一列中的数量超过了一定数量。
到目前为止,它遍历了DataGrid并成功验证了我需要它的另一列,但是我无法切换任何符合条件的Chekbox。
<DataGridTextColumn Header="Total" IsReadOnly="True" Binding="{Binding cost}" Width="130"></DataGridTextColumn>
<DataGridCheckBoxColumn Header="Check" IsReadOnly="False" Width="50">
<DataGridCheckBoxColumn.ElementStyle>
<Style />
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
for(int i=0; i<dataGrid.Items.Count - 1; i++)
{
if(Convert.ToDecimal(dataGrid.Columns[3].getcellContent(i)) > 200)
{ //Columns[3] is the "Total" Column.
((dataGrid.Columns[6]).getcellContent(i) as CheckBox).IsChecked = true;
//Columns[6] is the DataGridCheckBoxColumn
}
}
我使用以下方法获得总计列的正确值:
dataGrid.Columns[3].getcellContent(i)
但是
((dataGrid.Columns[6]).getcellContent(i) as CheckBox);
哪个是DataGridCheckBoxColumn,即使它是正确的列,也返回nullException。如果我WriteLine dataGrid.Columns [6],则得到“ System.Windows.Controls.DataGridCheckBoxColumn”,因此我确定位置正确,但无法将其设置为true。