【问题标题】:What is the best way to get and set selection when using databinding in winforms?在 winforms 中使用数据绑定时获取和设置选择的最佳方法是什么?
【发布时间】:2009-04-08 15:50:35
【问题描述】:

我在 win-forms 应用程序 (.Net 2.0) 中使用绑定,并尝试找到在我的数据绑定控件中维护所选项目的最佳方法。我读到访问选择的最佳方法是使用CurrencyManager(或bindingSource)的“Current”和“Position”属性。问题是我找不到什么都不选择的方法(Position 的值将始终设置为列表中一项的索引),也无法知道是否有很多选择的项目。 有没有办法使用CurrencyManager 解决这些问题,或者我应该开始使用控件提供的属性(例如 DataGridView 的 SelectedRows 属性)?

谢谢!

【问题讨论】:

    标签: .net winforms data-binding


    【解决方案1】:

    我不完全确定你在这里问什么。如果您询问如何将细节控件绑定到列表控件或网格中的选定项目,我认为最好的方法是使用两个 BindingSource 对象。网格绑定到的一个和细节控件绑定到的一个。然后,当用户在网格中选择一行时,使用详细信息 BindingSource 的 Filter 属性将其缩小到选定的行。然后,您将确保所选行的详细信息显示在控件中。

    例如:

      DetailBindingSource.Filter = "ID = " & SelectedRow.IDColumn.Value
    

    如果这不是您要查找的内容,请进一步说明。

    编辑:

    好的,我很抱歉没有理解最初的问题。我会说使用控件的属性是最好的方法。将 SelectedRow / SelectedItem 属性设置为所需的项目。

    更改绑定源的当前位置可能会影响其他控件的值,例如我最初提到的细节控件。

    【讨论】:

    • 我在问如何更改数据绑定控件(datagridview/listview/...)中的选定项。我可以使用控件的属性(例如 dataGridView 中的 SelectedRow),也可以使用 CurrentItem 和 Position 属性。我在问什么更好?
    【解决方案2】:

    令人难以置信的是,BindingSource 仍然无法拥有 No Selection。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多