2010-09-24 113 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

相關問題