2010-09-24 110 views
7

我正在使用c#编写一个小的wpf项目。我有2个窗户。当我从一个窗口走到另一个窗口时,我需要在第二个窗口上预选一些项目。我有一个复选框,我需要根据从注册表中获取的信息设置值。在第一个窗口中,我有第二个窗口的引用。如何将复选框设置为选中状态,以便在其他窗口打开时检查它?以编程方式在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(); 
    } 

回答

11

使用此:

 Window2 w2 = new Window2(); 

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

你设置窗口不是控制的Checked属性。它应该是这样的:

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

有一个在WPF为没有经过属性的复选框 – 2010-09-24 18:25:17

+2

w2.MyCheckBox.IsChecked = TRUE; (这工作正常) – 2010-09-24 18:28:23

4

您可以使用IsChecked属性。

我希望这会有所帮助。 达米安

+0

谢谢,这是我一直在寻找。这工作。 – 2010-09-24 18:27:32

+1

请在回答有用时将其标记为已回答。通过这种方式,其他人可以轻松识别出来,并且回答您的问题的人也可以获得信任。 – 2010-09-24 18:31:39

+0

这是更好的答案,你不应该使用后面的代码。这几乎就像硬编码。 – Kevin 2011-08-26 19:12:37

-1

我想说,你应该将视图模型推入视图通过IoC或其他方式。将值绑定到属性,让框架通过绑定使您的生活更轻松,而不必在整个地方硬编码值。

http://msdn.microsoft.com/en-us/library/ms752347.aspx

+0

误解。在视图模型中设置一个变量(设置为一个值)然后被检索(即使通过绑定),仍然可以通过精心设计的getters-setters迷宫将其“硬编码”为一个值。该变量仍然必须从某个地方设置 - 即使从另一个属性的值。为什么不直接将它设置到框中而不是通过设置/从模型变量检索值的过度膨胀方法? DataBinding对于这个简单的东西实际上是非常重要的。 – vapcguy 2016-09-30 18:44:51

相关问题