DataGridTemplateColumn中的复选框出现故障

本文关键字:故障 复选框 DataGridTemplateColumn | 更新日期: 2024-09-21 09:46:33

我在Silverlight中将带有复选框的DataGridTemplateColumn添加到我的Datagrid中。复选框已作为列成功添加到数据网格中。但是,如果我选中多个chcekbox,该列中的其他一些复选框将自动受到影响(即,从选中更改为未选中,反之亦然)。我没有为该复选框添加任何事件处理程序,那么这怎么会发生呢?在我看来,如果我滚动数据网格以查看更多记录,数据网格会自动刷新/更新,此时复选框会被打乱。我的代码如下所示:

            DataGridTemplateColumn templateColumn = new DataGridTemplateColumn() { Header = "header",Width=new DataGridLength(50) };               
            StringBuilder CellTemp = new StringBuilder();
            CellTemp.Append("<DataTemplate ");
            CellTemp.Append("xmlns='http://schemas.microsoft.com/winfx/");
            CellTemp.Append("2006/xaml/presentation' ");
            CellTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' >");
            CellTemp.Append("<CheckBox  x:Name='" + "checkBoxHeader" + "' Margin='4'  IsChecked='False'/>");
            CellTemp.Append("</DataTemplate>");
            templateColumn.CellTemplate = (DataTemplate)XamlReader.Load(CellTemp.ToString());
            ftrDataGrid.Columns.Add(templateColumn);

我应该如何解决这个问题,我应该向这个数据网格添加一个事件处理程序,但如何解决?

非常感谢您的投入,

Wei

DataGridTemplateColumn中的复选框出现故障

在模板中设置绑定非常简单:

DataGridTemplateColumn templateColumn = new DataGridTemplateColumn() { Header 
...
CellTemp.Append("<CheckBox  x:Name='" + "checkBoxHeader" + "' Margin='4'  IsChecked="{Binding MyProperty, Mode=TwoWay}"/>");
...            
ftrDataGrid.Columns.Add(templateColumn);

其中MyProperty是布尔值。