WPF if语句基于单选按钮是否被选中
问题描述:
我遇到了一些似乎应该很简单的问题。我来自Windows窗体并启动WPF。我想我有一个简单的语法问题,但我似乎无法找到这个单选按钮问题的具体示例。WPF if语句基于单选按钮是否被选中
我在我的GUI上有一个单选按钮,可以通过地图选择或列表运行查询。单击加载时,如果选择了地图,它应该执行一个操作,列表的操作不同。代码看起来类似于此:
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
}
任何帮助将不胜感激。谢谢。
答
变化:
if (rdBtnList.Checked == true)
到
if (rdBtnList.IsChecked == true)
注:
I'm coming from Windows Forms and starting up with WPF
- 你必须忘记你的一切在winforms中学习,并且拥抱MVVM。你应该创建一个ViewModel并将你的
rdBtnList.IsChecked
属性绑定到ViewModel中的某个布尔值,然后在那里执行你的逻辑。视图的代码不适用于应用程序逻辑。
答
您是否缺少退货声明?由于是,张贴代码将始终执行,如果没有选中路径:
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。
答
在WPF的属性称为IsChecked
因此你只需要更新if
声明
if (rdBtnList.IsChecked == true) {
...
}
的IsChecked
属性bool?
(空值)在WPF,所以你可以在这里选择更明确的做以下
if (rdBtnList.IsChecked.HasValue && rdBtnList.IsChecked.Value) {
...
}
而错误信息是? – mydogisbox 2013-03-25 16:30:47
我不明白你在问什么,除非你问什么声明是运行第二个“这样做”,如果按钮没有被点击..在这种情况下,它是其他:D – Andy 2013-03-25 16:33:44
更多的“不同的” “ //做这个。对困惑感到抱歉。 – Nallware 2013-03-25 16:48:23