Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 数据绑定到单选按钮(组)_C#_Winforms_Entity Framework 6 - Fatal编程技术网

C# 数据绑定到单选按钮(组)

C# 数据绑定到单选按钮(组),c#,winforms,entity-framework-6,C#,Winforms,Entity Framework 6,我试图以某种方式将实体字段(?)绑定到单选按钮 例如: 我有一个groupbox,里面有两个单选按钮:掷赢和掷输。 我有一个名为TossWon的数据库字段。我想发生的是,当Toss-win被选中时,TossWon应该是1(即true)。当勾选“掷骰丢失”时,TossWon应为false 我该怎么做?我应该绑定到groupbox的某些属性(我不这么认为),还是绑定到其中一个或两个单选按钮 我知道我可以使用事件,但我想知道是否有“更好”的方法。避免事件的一个优雅解决方案是在数据库中添加计算字段Tos

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

例如:

我有一个groupbox,里面有两个单选按钮:掷赢和掷输。 我有一个名为TossWon的数据库字段。我想发生的是,当Toss-win被选中时,TossWon应该是1(即true)。当勾选“掷骰丢失”时,TossWon应为false

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


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

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

数据绑定
TossWon

然后处理单选按钮的/事件

// 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
绑定到
rdtosswon
Checked
属性:

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

你尝试过什么技巧?