非常简单:我希望做与 this 相同的事情但在 winforms 中。谷歌似乎提取的所有内容都是特定于 wpf 的(即,我不想引用 presentationframework.dll)
如果您不想阅读链接,请解释:
以下是我想做的事情的意图的表示,尽管它显然行不通。
CheckBox1.DataBindings.Add(new Binding("Checked", this.object, "!SomeBool"));
最佳答案
你有两个选择:
第一个选项更简洁,IMO,因为它不会强制您的类的 API 遵循您的 UI 设计,尽管第二个选项(略微)更容易。
选项 1 的示例
private void SwitchBool(object sender, ConvertEventArgs e)
{
e.Value = !((bool)e.Value);
}
...
Binding bind = new Binding("Checked", this.object, "SomeBool");
bind.Format += SwitchBool;
bind.Parse += SwitchBool;
CheckBox1.DataBindings.Add(bind);
选项 2 的示例
public class SomeClass
{
public bool SomeBool { get; set; }
public bool NotSomeBool
{
get { return !SomeBool; }
set { SomeBool = !value; }
}
}
...
CheckBox1.DataBindings.Add("Checked", this.object, "NotSomeBool");
同样,我非常赞成选项 1,因为选项 2 要求您根据您的 UI 设计定制您的类。
关于c# - 将用户控件绑定(bind)到 bool 属性的对面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2464102/