【发布时间】:2018-09-04 18:33:26
【问题描述】:
我想在加载用户控件时更改 DataGridCheckBoxColumn 选中的属性。
数据网格:
<DataGrid BorderThickness="0" Name="grid_kaynak" Margin="1" MaxHeight="200" RowHeight="28" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeColumns="False" CanUserResizeRows="False" ColumnWidth="*" HorizontalGridLinesBrush="#FFDCDBDB" VerticalGridLinesBrush="#FFDCDBDB" HeadersVisibility="None" Background="{x:Null}" LayoutUpdated="grid_kaynak_LayoutUpdated">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="check_kaynak" MaxWidth="27" >
<DataGridCheckBoxColumn.ElementStyle>
<Style TargetType="CheckBox">
<Setter Property="VerticalContentAlignment" Value="Center"></Setter>
<Setter Property="HorizontalAlignment" Value="Center"></Setter>
</Style>
</DataGridCheckBoxColumn.ElementStyle>
</DataGridCheckBoxColumn>
</DataGrid.Columns>
</DataGrid>
当我尝试检查 Usercontrol_loaded 事件中的更改时,返回“对象引用未设置为对象的实例”。但是当我尝试 buttonclick 事件时,它可以工作!就像这样:
private void btn_kaynak_Click(object sender, RoutedEventArgs e)
{
for (int i = 0; i < grid_kaynak.Items.Count; i++)
{
var item = grid_kaynak.Items[i];
var mycheckbox = grid_kaynak.Columns[1].GetCellContent(item) as CheckBox;
if ((bool)mycheckbox.IsChecked == false)
{
mycheckbox.IsChecked = true;
}
}
}
如何在 Usercontrol_loaded 事件中工作?
【问题讨论】:
-
为什么不简单地将 DataGrid 绑定到带有 bool 的 Items 集合,并将绑定设置为两种方式?
-
我不知道这个。我该怎么做呢?
-
如果我的回答对你有帮助,请采纳!
标签: c# wpf datagrid wpfdatagrid