C# Winforms将控件绑定到特定索引处数组元素的数据
我正在尝试在numericupdown和数组元素之间创建数据绑定。在我的表单中,我尝试创建如下所示的绑定,但它似乎不起作用。任何帮助都将不胜感激 绑定: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
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的位置设置为数组中该元素的索引。