2016-12-29 10 views
0

私は本当にC#(1-2日間)の新機能です。私はまだグリッドにアクセスする方法と、特定の行の中のボタン&の列がプロパティ "isEnabled"に対してtrueに設定されているかどうかをテストしません。 青色のボタンが赤く点灯しているかどうかをテストします。C#グリッドボタン子供テスト

[行] [col](ここでは[i] [j])のボタンとそのプロパティ "isEnabled"にアクセスするためのテストの書き方はわかりません。 ボタン付き8 * 8グリッドです。私を助けてくれてありがとう。

public bool isButtonAvaible(Button button) 
    { 
     row = (int)button.GetValue(Grid.RowProperty); 
     col = (int)button.GetValue(Grid.ColumnProperty); 

     foreach (Button b in gridBoard.Children)  //not sure if correct/needed 

     { 
      for (int i = row - 1; i <= row + 1; i++) 
      { 
       for(int j = col - 1; j <= col +1; j++) 
       { 
        if(gridBoard.Children ??? (Button.IsEnabledProperty ==true) 
        { 
         return true; 
        } 
       } 
      } 
     } 
     return false; 
    } 

concept of the test on blue button

答えて

0

あなたがあなたの機能をフォーマットしてきたように、ボタンが有効になっているかどうかを確認するテストを実行したい場合は、それは

public bool isButtonAvailable(Button btn) 
{ 
    return btn.IsEnabled; 
} 

IsEnabledがブールであるように簡単ですこの関数の引数としてボタンを渡す場合は、渡されたボタンが有効かどうかのtrue/falseを返すだけです。あなたが試した他のすべて - あまりにも多すぎる。

+0

はたぶん関数の名前は良くありません。実際、ボタンの周りのボタンが無効になっているかどうかを定義しようとします。 1つが無効にされている場合、押されたボタンはユーザにとって利用可能である。ボタンがグリッドに積まれているので、このようにグリッドにループしたい: –

+0

OK Thanks Geoff。私はこれを見つけた。私は答えを編集するでしょう –

+0

助けがあれば、私の答えをアップアップして受け入れることができますか?ありがとう –

0
private static Button GetChildren(Grid grid, int row, int column) 
    { 
     foreach (Button child in grid.Children) 
     { 
      if (Grid.GetRow(child) == row 
        && 
       Grid.GetColumn(child) == column) 
      { 
       return child; 
      } 
     } 
     return null; 
    } 

しかし、それはまた、より一般的なことができます。public UIElement GetChildren(etc ...){}