相关疑难解决方法(0)

WPF工具包DataGrid复选框问题

我真的希望有人可以帮助我.我的程序中有一个DataGrid,它有一个复选框列.DataGrid的ItemsSource是以编程方式加载的DataSet.当我在DataGrid中选择几个项目然后滚动它时,我会得到一些非常奇怪的行为.例如,当我检查两个CheckBox时,它告诉我有"2选择",但是如果我在DataGrid中向上或向下滚动,则数字会改变.如果我回滚到初始位置,它会回到"2选中".虽然听起来很奇怪,但当我滚动框时,它似乎正在调用Checked/Unchecked事件...非常奇怪......

我的代码顶部定义了以下内容:

private DataSet MyDataSet;
int selected_count = 0;
Run Code Online (Sandbox Code Playgroud)

然后我在我的方法中有以下代码将信息加载到DataSet中:

MyDataSet = new DataSet();
DataTable tempDataTable = new DataTable();
MyDataSet.Tables.Add(tempDataTable);

DataColumn tempCol = new DataColumn("Checked", typeof(bool));
tempDataTable.Columns.Add(tempCol);

for (int i = 0; i < 50; i++)
{
    DataRow tempRow = tempDataTable.NewRow();
    tempDataTable.Rows.Add(tempRow);
    tempRow["Checked"] = false;
}

MyList.ItemsSource = MyDataSet.Tables[0].DefaultView;
Run Code Online (Sandbox Code Playgroud)

我将IsChecked属性绑定到名为"Checked"的DataColumn,使用以下XAML:

<dtgrd:DataGrid x:Name="MyList" AutoGenerateColumns="False" CanUserAddRows="False" CanUserResizeRows="False" HeadersVisibility="Column" SelectionUnit="FullRow" HorizontalGridLinesBrush="#FF688CAF" VerticalGridLinesBrush="#FF688CAF">
    <dtgrd:DataGrid.Columns>
        <dtgrd:DataGridTemplateColumn x:Name="CheckCol" CanUserSort="True" CanUserResize="False">
            <dtgrd:DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <CheckBox Name="MyCheckBox" IsChecked="{Binding Checked}" HorizontalAlignment="Center" VerticalAlignment="Center" Checked="MyCheckBox_Checked" Unchecked="MyCheckBox_Unchecked" />
                </DataTemplate>
            </dtgrd:DataGridTemplateColumn.CellTemplate>
        </dtgrd:DataGridTemplateColumn>
    </dtgrd:DataGrid.Columns>
</dtgrd:DataGrid> …
Run Code Online (Sandbox Code Playgroud)

wpf checkbox datagrid toolkit

2
推荐指数
1
解决办法
5892
查看次数

标签 统计

checkbox ×1

datagrid ×1

toolkit ×1

wpf ×1