C# Winforms将控件绑定到特定索引处数组元素的数据

C# Winforms将控件绑定到特定索引处数组元素的数据,c#,winforms,data-binding,C#,Winforms,Data Binding,我正在尝试在numericupdown和数组元素之间创建数据绑定。在我的表单中,我尝试创建如下所示的绑定,但它似乎不起作用。任何帮助都将不胜感激 绑定: nudTest.DataBindings.Add("Value", eac.ESettings.HsvArray[0], "", false,DataSourceUpdateMode.OnPropertyChanged); 数组: public class ESettings : INotifyPropertyChanged { p

我正在尝试在numericupdown和数组元素之间创建数据绑定。在我的表单中,我尝试创建如下所示的绑定,但它似乎不起作用。任何帮助都将不胜感激

绑定:

nudTest.DataBindings.Add("Value", eac.ESettings.HsvArray[0], "", false,DataSourceUpdateMode.OnPropertyChanged);
数组:

public class ESettings : INotifyPropertyChanged
{

    private int[] hsvArray = new int[6];

    public event PropertyChangedEventHandler PropertyChanged;

          [XmlIgnore]
    public bool PrgVarIsDirty
    {
        get { return prgVarIsDirty; }
        set
        {
            prgVarIsDirty = value;
            OnPropertyChanged("PrgVarIsDirty");
        }
    }

    public int[] HsvArray
    {
        get { return hsvArray; }
        set
        {
            if (value != hsvArray)
            {
                prgVarIsDirty = true;
                hsvArray = value;
                OnPropertyChanged("HsvArray");
            }

        }
    }


    // Create the OnPropertyChanged method to raise the event
    protected void OnPropertyChanged(string name)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null)
        {
            handler(this, new PropertyChangedEventArgs(name));
        }
    }
}

如果要将控件绑定到数组的元素,而不是尝试直接绑定到元素,请将控件绑定到数组,然后将of设置为数组中该元素的索引

例如,下面的代码将
NumericUpDown
绑定到数组,并显示
30
,索引2处的元素:

int[] array = new int[] { 10, 20, 30, 40 };
private void Form1_Load(object sender, EventArgs e)
{
    this.numericUpDown1.DataBindings.Add("Value", array, "");
    ((BindingManagerBase)this.numericUpDown1.BindingContext[array]).Position = 2;
}

可以使用
BindingSource
进行相同的绑定。将
array
设置为绑定源的
DataSource
,并使用绑定源进行数据绑定就足够了。然后,要显示特定元素,请设置
BindingSource的
Position

WinForms不支持此类数据绑定是否有其他方法可以执行此操作,或者我只是运气不好?如果要将控件绑定到数组的元素,而不是尝试直接绑定到元素,请将控件绑定到数组,然后将CurrencyManager的位置设置为数组中该元素的索引。