2014-07-14 32 views
0

我已經在我的項目如何在靜態方法中使用元素(標籤,圖像)?

<Label x:Name="winsLabel" Content="" HorizontalAlignment="Left" 
     Margin="68,429.065,0,0" VerticalAlignment="Top" FontSize="18"/> 
<Label x:Name="lossesLabel" Content="" HorizontalAlignment="Left" 
     Margin="180,429.065,0,0" VerticalAlignment="Top" FontSize="18"/> 

一些元素和我想要設置值,這些標籤在靜態方法:

public static void ResetGame() 
{ 
    score_wins = 0; 
    score_losses = 0; 
    score_draws = 0; 

    winsLabel.Content = score_wins; 
    lossesLabel.Content = score_losses; 
} 

但這個錯誤(錯誤14要求的對象引用對於非靜態字段,方法或屬性'mainRockPaperTest.MainWindow.winsLabel')會讓我困惑。

我可以在XAML中製作靜態標籤或圖像嗎?你能爲我指出正確的方向嗎?謝謝你的幫助!

+1

你不能。爲什麼它是靜態的?它似乎是完全合理的,它是一個實例方法。 (特別是如果使用實例屬性)。 –

+0

靜態,因爲我想從其他類沒有實例調用此方法...或者它是錯誤的?這是一個MainWindow類,但爲什麼要爲MainWindow創建第二個實例? – Eluvium

+0

沒有實例,沒有可以設置的標籤。 – qqbenq

回答

1

創建一個基類,並從中獲得您的看法,定義這些元素融入到類,然後你可以傳遞一個參考ResetGame

public static void ResetGame(BaseClass baseClass) 
{ 
    score_wins = 0; 
    score_losses = 0; 
    score_draws = 0; 

    baseClass.winsLabel.Content = score_wins; 
    baseClass.lossesLabel.Content = score_losses; 
} 
+0

非常感謝你! – Eluvium

+1

這是正確的答案,但您確實應該考慮數據綁定。達到設定價值的形式並不是很好的XAML-fu。 –

+0

謝謝!我會嘗試這種方法 – Eluvium

相關問題