gpt4 book ai didi

c# - 如何在wpf中获取选中的单选按钮的值

转载 作者:行者123 更新时间:2023-11-30 20:58:31 26 4
gpt4 key购买 nike

我在网格面板中有四个 RadioButtons,但是当我这样做时:

<GroupBox x:Name="radioButtons">
<RadioButton Content="1" Height="16" HorizontalAlignment="Left" Margin="10,45,0,0" Name="status1" VerticalAlignment="Top" />
<RadioButton Content="2" Height="16" HorizontalAlignment="Left" Margin="10,67,0,0" Name="status2" VerticalAlignment="Top" />
<RadioButton Content="3" Height="16" HorizontalAlignment="Left" Margin="10,89,0,0" Name="status3" VerticalAlignment="Top" />
<RadioButton Content="4" Height="16" HorizontalAlignment="Left" Margin="10,111,0,0" Name="status4" VerticalAlignment="Top" />
</GroupBox>

它说:

Error 1 The object 'GroupBox' already has a child and cannot add 'RadioButton'. 'GroupBox' can accept only one child.

最后三个 RadioButtons 说:

The property 'Content' is set more than once.

我的 GroupBox 出了什么问题?此外,在我的代码中,我想访问选中的 RadioButton(最好是 int)。我该怎么做呢?我尝试查看 Google,发现了很多结果,但我无法理解其中任何一个。

最佳答案

GroupBox 只能容纳 1 个项目,因此多次尝试设置 GroupBoxContent 属性时出错。

因此,将其设为 Layout 项,然后将 RadioButton 放入其中。现在,您设置了一次 Content,即 StackPanel,并且 Layout 项可以包含许多子项 -> RadioButton

<GroupBox x:Name="radioButtons">
<StackPanel>
<RadioButton Name="status1"
Height="16"
Margin="10,45,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="1" />
<RadioButton Name="status2"
Height="16"
Margin="10,67,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="2" />
<RadioButton Name="status3"
Height="16"
Margin="10,89,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="3" />
<RadioButton Name="status4"
Height="16"
Margin="10,111,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Content="4" />
</StackPanel>
</GroupBox>

关于你的第二个问题,Christian Mosers WPF Tutorial.net有一个不错的样本。如果您不理解,您可能应该先查看主题 BindingConverter

以非 MVVM 方式检查 RadioButton 通知的一种非常粗略的方式:

private void RadioButtonChecked(object sender, RoutedEventArgs e) {
var radioButton = sender as RadioButton;
if (radioButton == null)
return;
int intIndex = Convert.ToInt32(radioButton.Content.ToString());
MessageBox.Show(intIndex.ToString(CultureInfo.InvariantCulture));
}

然后,在 xaml 中的每个 RadioButton 中,添加 Checked="RadioButtonChecked"

关于c# - 如何在wpf中获取选中的单选按钮的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16036469/

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