在C#(WPF)中以编程方式设置复选框的值

11

我正在使用C#开发一个小型WPF项目。我有两个窗口。当我从一个窗口切换到另一个窗口时,我需要在第二个窗口上预先选择一些项目。我有一个复选框,需要根据我从注册表中检索的信息来设置其值。在第一个窗口中,我引用了第二个窗口。如何将复选框设置为已选中,以便在打开其他窗口时它已经被选中?

 private void btnGoToNextWindow_Click(object sender, RoutedEventArgs e)
    {
            Window2 w2 = new Window2();

            //This doesn't work             
            w2.Checked = true;

            w2.Show();
            this.Close();
     }
3个回答

20

使用此方法:

        Window2 w2 = new Window2();

        //This doesn't work             
        w2.Checked = true;

您正在设置窗口的Checked属性而不是控件的Checked属性。应该像这样:

        Window2 w2 = new Window2();        
        w2.MyCheckBox.IsChecked = true;

1
WPF的复选框中没有Checked属性。 - Damian Schenkelman
WPF 中没有 Checked 属性,请更新您的答案。 - abdou_dev

6
你可以使用 IsChecked 属性。
希望这有所帮助。 Damian

1
请在答案有用时将其标记为已回答。这样,其他人可以轻松地识别它,并回答您的问题的人会得到相应的信誉。 - Damian Schenkelman
这是更好的答案,你永远不应该使用代码后台。这几乎就像硬编码一样。 - Kevin

-1

误解。在视图模型中有一个变量,它被设置为一个值,然后被检索(即使通过绑定),仍然将其“硬编码”为一个值,只是通过一系列复杂的getter-setter方法。即使从另一个属性的值中获取,该变量仍然必须最初从某个地方进行设置。为什么不直接将其设置到框中,而不是通过过度膨胀的设置/检索模型变量的方法?对于这么简单的东西,数据绑定确实有些过头了。 - vapcguy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接