gpt4 book ai didi

c# - WinForms (C#) 数据绑定(bind)对象到 Checkbox.Checked 属性

转载 作者:太空狗 更新时间:2023-10-30 00:46:36 26 4
gpt4 key购买 nike

我正在编写 WinForms 应用程序,并试图将 .NET 对象上的 bool 属性绑定(bind)到复选框的“选中”属性。我成功创建了绑定(bind),但是当我将 source 属性的值从 false 更改为 true 时(我有一个切换它的按钮),复选框的“checked”属性不会反射(reflect)该更改。

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;
}

例如,我能够成功地将文本属性绑定(bind)到 TextBox 的值。但是,我不确定在绑定(bind)到“Checked”属性时我遗漏了什么。

最佳答案

要使其工作,源必须具有正在触发的 PreRunChanged 事件 (EventHandler),或者它必须实现 INotifyPropertyChanged (包括此属性)。或者作为一种边缘情况,必须有一个支持通知的自定义 PropertyDescriptor 实现(但这非常罕见。

你的代码有 PreRunChanged 吗?它是否在适当的时候提出?

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

关于c# - WinForms (C#) 数据绑定(bind)对象到 Checkbox.Checked 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2844517/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com