我遇到一些看起来应该很简单的问题。我来自Windows Forms并开始使用WPF。我想我有一个简单的语法问题,但我似乎无法找到这个单选按钮问题的具体示例。
我的GUI上有一个单选按钮,可以通过地图选择或列表运行查询。单击加载时,如果选择了map,则应执行一个操作,对列表执行不同的操作。代码看起来类似于:
private void Load_Click(object sender, RoutedEventArgs e)
{
if (rdBtnList.Checked == true)
{
//do this
}
// if rdBtnList not checked (ie if rdBtnMap is checked)
// do this
}
非常感谢任何帮助。感谢。
答案 0 :(得分:4)
变化:
if (rdBtnList.Checked == true)
到
if (rdBtnList.IsChecked == true)
注意:强>
I'm coming from Windows Forms and starting up with WPF
rdBtnList.IsChecked
属性绑定到ViewModel中的某个布尔值,然后在那里执行您的逻辑。背后的视图代码不适合应用程序逻辑。答案 1 :(得分:1)
WPF中的属性称为IsChecked
,因此您只需更新if
语句
if (rdBtnList.IsChecked == true) {
...
}
WPF中IsChecked
属性为bool?
(可空值),因此您可以选择在此处更明确地执行以下操作
if (rdBtnList.IsChecked.HasValue && rdBtnList.IsChecked.Value) {
...
}
答案 2 :(得分:0)
您是否错过了退货声明?按原样,发布的代码将始终执行if not checked path:
private void Load_Click(object sender, RoutedEventArgs e)
{
if (rdBtnList.IsChecked == true)
{
//do this
return; // return, or the if not checked path below will always win.
}
// if rdBtnList not checked (ie if rdBtnMap is checked)
// do this
}
在WPF中,您需要使用IsChecked属性。有关详细信息,请参阅RadioButton Class。