【发布时间】:2016-04-15 04:05:14
【问题描述】:
设置
我有以下课程:
public class MyClass
{
private MyEnum _val;
public MyEnum Val
{
get { return _val; }
set { _val = value; }
}
}
以及以下枚举:
public enum MyEnum
{
EnumValue1 = 0,
...
EnumValue5 = 4
}
我还有一个 WinForms 组合框
期望的行为
我想用来自 MyEnum 的值填充组合框,并将组合框的选定索引绑定到 MyClass.Val 属性,并让组合框在我更改组合框中的选择时更新此属性。
问题
由于某种原因,当我更改组合框的值时,组合框不会调用我的属性的 set 访问器,但是调用 get 访问器 没有任何问题或异常
我的绑定如下:
MyClass mc = new MyClass();
ComboBox cb = c //I get the c value by iterating through my WebForms Form's Controls collection
cb.DataSource = Enum.GetValues(typeof(MyEnum)); //This populates the values of the combobox and works OK
cb.DataBindings.Add("SelectedIndex", mc, "Val", false, DataSourceUpdateMode.OnPropertyChanged); //This seems to partially work: only the get accessor is called, the set accessor is never called
我已经阅读了许多其他类似的线程,但它们要么不相关(建议使用 DataSourceUpdateMode.OnPropertyChanged 或与 WPF 相关),要么没有帮助(建议在绑定之前将枚举转换为 List)。
问题
我是否遗漏了什么或做错了什么?谁能建议如何让组合框调用 set 访问器?
【问题讨论】:
-
您在代码中的哪一点设置了 MyClass.Val 的值?
标签: c# .net winforms data-binding binding