【问题标题】:How can a string array be databound to a ListBox?如何将字符串数组数据绑定到 ListBox?
【发布时间】:2009-08-05 02:32:45
【问题描述】:

我对使用 WinForms 的 .NET GUI 编程比较陌生(出于部署原因,我正在进行的项目是针对 .NET 2.0),并且我正在尝试将表单中的 ListBox 绑定到字符串 []以如下形式定义的属性:

namespace AVPriorityUI
{
    public partial class AVPriorityUI : Form
    {
        public AVPriorityUI()
        {
            InitializeComponent();
        }

        public string[] ProcessNames
        {
            get { ... }
            set { ... }
        }
    }
}

无论我做什么,我都无法让 Visual Studio 2008 提供 ProcessNames 属性作为绑定到的有效源。我需要做些什么不同的事情来完成这项工作?

[编辑] 我一直在尝试使用 GUI 来建立绑定。

【问题讨论】:

    标签: c# winforms data-binding


    【解决方案1】:

    您应该能够在代码本身中将列表框的 DataSource 设置为 ProcessNames 属性。如果您尝试使用 UI 设置可能是罪魁祸首的 DataSources/Bindings。

    即:

    mylistBox.DataSource = this.ProcessNames;
    

    【讨论】:

    • 就是这样......我从来没有见过一个 UI 可以在复杂的情况下工作,但在微不足道的情况下完全失败...... :(
    【解决方案2】:

    http://msdn.microsoft.com/en-us/library/aa288424(VS.71).aspx

    listbox.Items.AddRange(this.ProcessNames);

    【讨论】:

    • 暂缓我的解决方案...旧的 c# 语法....在 2.0 及更高版本中不再有效....
    【解决方案3】:

    这在刚才的一个简单测试中对我有用:

    string[] alist = { "a", "b", "c", "d", "e", "f", "g", "h" };
    listBox1.DataSource = alist;
    

    【讨论】:

    • 如果 alist 是一个全局范围的变量,并且您在数据绑定后添加了更多元素,您将如何进行这项工作?
    猜你喜欢
    • 2012-03-12
    • 2021-09-05
    • 2014-08-02
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 2014-08-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多