1

我在 Silverlight 中的 Datagrid 中添加了一个带有复选框的 DataGridTemplateColumn。Checkbox 作为列成功添加到数据网格中。但是,如果我选中了多个 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);

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

非常感谢您的意见,

4

1 回答 1

0

在模板中设置绑定就像这样简单:

DataGridTemplateColumn templateColumn = new DataGridTemplateColumn() { Header 
...

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

其中 MyProperty 是一个布尔值。

于 2012-08-02T18:10:34.563 回答