2017-02-08 3 views
0

トグルスイッチのIsOnプロパティを使用し、スイッチのIsOnプロパティを取得して設定しようとすると、system.stackオーバーフローでクラッシュするだけで、UWPアプリはスタックのowerflow例外を削除します例外。 これをどのように解決できますか?または、他の方法でトグルスイッチの状態を設定することはできますか? (Switch1_Toggledがturnit方法の前に、人間の相互作用によって起こる)コードC#

public void turnit() 
    { 
     Switch1.IsOn = true; 
    } 

    public void Switch1_Toggled(object sender, RoutedEventArgs e) 
    { 
     if(Switch1.IsOn) 
     { 
      request = "11"; 
     } 
     else 
     { 
      request = "10"; 
     } 
     SendRequest(); 
     //ReceiveResponse(); 
     //statusupdater(); 
     turnit(); 
    }  

答えて

3

あなたは無限ループが発生しています。あなたはSwitch1.IsOn = true;を介してスイッチを切り替えると、それは順番に無限の深さを格納するためのスタックメモリに十分なスペースがないため、スタックオーバーフローが発生する順番に...

turnit()を呼び出して、あなたのハンドラメソッドSwitch1_Toggledを、トリガされます通話階層の

ハンドラ内のturnitへの呼び出しを削除してください。

+0

タンク!他の方法で 'turnit()'を呼び出すと、エラーは発生しません。私は、トグルされたイベントは、ユーザーとのやりとりによってのみ起こると思っていました...本当にありがとう、高速回答です! –

+0

正しいです: 'turnit()'を他の場所で呼び出すのは問題ありません。私はいくつかのUWPアプリケーションしか構築していませんが、コードビハインドから呼び出されたとしても、バインディングやイベントハンドラはいつも一貫して常に動作しています(WinFormsアプリケーションとは異なる場合があります)。助けてうれしい!ハッピーコーディング! – ryancdotnet