代码之家  ›  专栏  ›  技术社区  ›  Trevor Sullivan

winforms(c)数据绑定对象到复选框。选中属性

  •  4
  • Trevor Sullivan  · 技术社区  · 14 年前

    我正在编写一个WinForms应用程序,并尝试将.NET对象上的布尔属性绑定到复选框的“选中”属性。我正在成功创建绑定,但是当我将源属性的值从“假”更改为“真”(我有一个按钮将其切换)时,复选框的“选中”属性不会反映该更改。

    if (chkPreRun.DataBindings["Checked"] == null)
    {
        Debug.WriteLine("Adding chkPreRun databinding");
        Binding _binding = chkPreRun.DataBindings.Add("Checked", NwmConfig, "PreRun")
    
        // Added this just to ensure that these were being set properly
        _binding.DataSourceUpdateMode = DataSourceUpdateMode.OnPropertyChanged;
        _binding.ControlUpdateMode = ControlUpdateMode.OnPropertyChanged;
    }
    

    例如,我可以成功地将文本属性绑定到文本框的值。但是,我不确定绑定到“checked”属性时缺少什么。

    1 回复  |  直到 11 年前
        1
  •  7
  •   Marc Gravell    14 年前

    要使其工作,源必须具有 PreRunChanged 事件( EventHandler )被解雇了,或者必须执行 INotifyPropertyChanged (包括本地产)。或作为边缘箱,必须具有 习俗 PropertyDescriptor 支持通知的实现(但这是非常罕见的。

    你的代码有 预不变的 ?是否在适当的时间提出?

    (UI不轮询更改;它只通过通知事件了解更改)