0

私はちょっとしたチェスゲームを書こうとしてきましたが、デバッグに役立つようにフィールドに脅威カウントを表示したいと思いました。しかし、それは機能しません。つまり、Text プロパティは "" のままで、その理由がわかりません。

for (int i = 0; i < grid.ColumnDefinitions.Count; i++)
{
      for (int j = 0; j < grid.RowDefinitions.Count; j++)
      {
          ...
          TextBlock textBlock = new TextBlock();
          Binding binding = new Binding("WhiteThreats");
          binding.Source = game.board[i][j];
          textBlock.SetBinding(TextBox.TextProperty, binding);
          ...
      }
}

ここで、game.board[i][j] は次のように指定されたタイプの GameField です。

struct GameField : INotifyPropertyChanged
{
    ...
    private int whiteThreats;

    public event PropertyChangedEventHandler PropertyChanged;

    public int WhiteThreats
    {
        get { return whiteThreats;}
        set
        {
            whiteThreats = value;
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs("WhiteThreats"));
        }
    }
    ...
}

頭に浮かんだ他のすべての可能性をチェックしました。TextBox が正しく表示され、binding.Source も正しく割り当てられます。私は今立ち往生しています。

4

0 に答える 0