Winforms .NET DataRepeater - 未绑定的复选框在滚动时不会保持已选中/未选中状态

时间:2010-12-10 22:15:20

标签: winforms state datarepeater

我有一个WinForms应用程序,它从数据库中检索项目并将它们显示在列表中:

<Delete Button><Edit Button><Checkbox><PartNumber><PartDescription>

Checkbox未绑定,并允许用户选择列出的所有部件,然后编辑这些项的属性。我遇到的问题是在运行时选中一个复选框。我可以选择一个项目,然后快速向下滚动列表,突然之间,许多其他项目的复选框都被检查......看似随机的方式。就好像滚动时,datarepeater会在复选框上触发事件。我不太确定。复选框工作正常,并使用户能够正确选择项目,我只是无法弄清楚为什么随机检查/取消选中复选框。

2 个答案:

答案 0 :(得分:0)

我认为它与DataRepeaterItem中的CheckBox控件有关,不是数据绑定。所有其他字段都是,但是当我在Repeater中上下滚动时复选框不是这样,复选框会丢失它们的状态。我正在重新处理我的类对象,以允许保留每个项目的“已检查”状态。

有人确认或否认这是发生了什么事吗?

谢谢!

答案 1 :(得分:0)

当我在设置绑定源之前设置转发器的数据源时,这发生在我身上。我希望它能指出你正确的方向。以下是我的代码摘录

    Dim sres As New frmSearchResults
    Dim dt As DataTable = resultsDataTable
    With sres
        .lblDate.DataBindings.Add(New Binding("Text", dt, "createtime", True))
        .lblOwner.DataBindings.Add(New Binding("Text", dt, "owner", True))
        .lblTicketNumber.DataBindings.Add(New Binding("Text", dt, "ticketnumber", True))
        .lblTitle.DataBindings.Add(New Binding("Text", dt, "tickettitle", True))
        .txtExcerpt.DataBindings.Add(New Binding("Text", dt, "excerpt", True))
        .btnLoad.DataBindings.Add(New Binding("Tag", dt, "ticketid", True))


        .dr1.DataSource = dt 'this used to come before my bindings above

        sres.Show()

    End With