databind到单选按钮(组)

本文关键字:单选按钮 databind | 更新日期: 2023-09-27 17:59:31

我试图以某种方式将实体字段(?)绑定到单选按钮。

也许是一个例子:

我有一个分组框,里面有两个单选按钮:掷硬币赢和掷硬币输。我有一个名为TossWon的数据库字段。我想发生的是,当TossWon被选中时,TossWan应该是1(即true)。选中Toss Lost时,TossWon应为false。

我该怎么做?我应该绑定到groupbox的某个属性(不要这么认为),还是绑定到一个或两个单选按钮?

我知道我可以使用事件,但我想知道是否有"更好"的方法。

databind到单选按钮(组)

避免事件的一个优雅解决方案是在数据库中添加计算字段TossLost= NOT(TossWon)

数据将TossWon绑定到两个单选按钮。

然后处理单选按钮的Binding.Parse/Binding.Format事件

// Displaying data, true if data is 1 else false
rdoTossWin.DataBindings[0].Parse += (sender, e) => e.Value = ((int)e.Value) == 1;
// Change the true to 1 and false to 0
rdoTossWin.DataBindings[0].Format += (sender, e) => e.Value = (bool)e.Value ? 1 : 0;

正如HubertL所指出的,只有一个文件就足够了。您应该将两个单选按钮都放在一个组框中,这样选中其中一个会导致另一个被取消选中,而无需编写任何代码。您可以简单地将属性TossWon绑定到rdTossWin:的Checked属性

rdTossWin.DataBindings.Add("Checked", yourDataSource,"TossWin");