Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# WinForm控件绑定到列表<;T>;问题_C#_Winforms_Data Binding - Fatal编程技术网

C# WinForm控件绑定到列表<;T>;问题

C# WinForm控件绑定到列表<;T>;问题,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个用于存储数据的列表,我尝试将其项绑定到网格、列表框、文本框等,但无法使其正常工作。这是我的密码 class Survey { public int Id { get; set; } public string Desc{ get; set; } public List<string> Choices { get; set; } } 注意:我无法添加到ListBox.Items,因为我绑定到此控件的数据源,所以它会出现异常 列表框不显示新项目,如果我从dat

我有一个用于存储数据的列表,我尝试将其项绑定到网格、列表框、文本框等,但无法使其正常工作。这是我的密码

class Survey
{
   public int Id { get; set; }
   public string Desc{ get; set; }
   public List<string> Choices { get; set; }
}
注意:我无法添加到ListBox.Items,因为我绑定到此控件的数据源,所以它会出现异常

列表框不显示新项目,如果我从dataGrid中选择其他项目并返回,我可以看到新添加的选项


这里有什么问题?另外,代码还可以,这是我第一次使用这个绑定工具。

当元素发生更改时,您的数据源不会引发事件。一个简单的解决方法是将数据源从列表更改为BindingList。

谢谢您的回答,我尝试了,但没有任何更改。您是否将更改保存回列表?如果有保存方法,没有,我没有,我只查看我的BindingList项,它们具有新的附加值,但不会像DataGridView一样立即显示在列表框中。。。
List<Survey> _surveyList = GetList();
BindingSource _bindingSourceSurveys = new BindingSource { DataSource=_surveyList};
dataGridView1.DataSource = _bindingSourceSurveys;
txtDesc.DataBindings.Add("Text", _bindingSourceSurveys, "Desc",false,DataSourceUpdateMode.OnPropertyChanged,string.Empty);
lstChoices.DataBindings.Add("DataSource" , _bindingSourceSurveys,"Choices" ,false,DataSourceUpdateMode.OnPropertyChanged, string.Empty); 
(_bindingSourceSurveys.Current as Survey).Choices.Add("NewChoice");