2

TextBoxコードビハインドで 作成しています。

TextBox textBox = new TextBox();

私も関数を持っています:

private void TextBox_Focus(object sender, RoutedEventArgs e)
{
    // does something
}

にバインドTextBox_FocusしたいTextBox.GotFocus

このように各プロパティを個別に設定するのではなく、

TextBox textBox = new TextBox();
textBox.Width = 100;
textBox.Height = 25;
textBox.Background = Brushes.White;
textBox.Foreground = Brushes.Blue;
textBox.GotFocus += TextBox_Focus;

私は中括弧(中括弧)を使用することを好みます{}

TextBox textBox = new TextBox()
{
   Width = 100,
   Height = 25,
   Background = Brushes.White,
   Foreground = Brushes.Blue
};

ただし、ブレース メソッドを使用すると、イベントにバインドできません。

以下のことをやってみましたが、だめでした...

TextBox textBox = new TextBox()
{
   Width = 100,
   Height = 25,
   Background = Brushes.White,
   Foreground = Brushes.Blue,
   this.GotFocus += TextBox_Focus
};

質問: ブレース ( {}) メソッドを使用してイベントをバインドする方法はありますか?

更新: 要素が動的に作成されているため、XAML を使用できません。

4

3 に答える 3

3

いいえ。オブジェクト初期化子は、プロパティまたはフィールドを設定するためにのみ機能します。オブジェクト初期化構文でサポートされていないイベントをサブスクライブしようとしています。

他のコメンターが言っているように、XAML は WPF コントロールを初期化する最良の方法です。

どうやらMonoはあなたが求めているものをサポートしています。参照:初期化構文によるイベントの初期化

于 2013-04-10T16:01:51.637 に答える