0

テキストボックスに灰色を設定しようとしていました.次のコードを実行しようとしていましたが、次のように例外がスローされています.

"オブジェクト参照がオブジェクト インスタンスに設定されていません。"

テキストボックスの値がnullであるため、値の有無に関係なく、テキストボックスを灰色にしたいのです。

これが、コンセプトを実装するために使用したコードです。

 <TextBox
    Name="tbHeadline" 
    Text="{Binding SelectedStory.Headline, UpdateSourceTrigger=PropertyChanged, ValidatesOnExceptions=True, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.ErrorTemplate="{StaticResource ErrorTemplate}" 
    Grid.Column="1"  
    Grid.Row="6" 
    TextWrapping="NoWrap" 
    d:LayoutOverrides="Height" 
    Grid.ColumnSpan="2" 
    HorizontalAlignment="Stretch" 
    LostFocus="tbHeadline_LostFocus" 
 />

Xaml.Csで使用したコードは次のとおりです

 tbHeadline.Foreground = Brushes.Gray;

次のコードも試しました

tbHeadline.Background = Brushes.Gray;

どちらも同じ例外をスローします。

4

2 に答える 2

2

XAML 要素はコード ビハインドのInitializeComponentメソッド中に作成されるため、その呼び出しの前に名前付き要素にアクセスしようとすると、null.

于 2013-05-20T05:34:50.583 に答える
1

プロパティを XAML マークアップ ファイルで直接設定しないのはなぜですか? XAMLファイルでやりたくない場合は、お勧めします(通常はこの方法で行います):

  1. コンストラクターで、ページ全体またはコントロールの Loaded イベントのイベント ハンドラーを設定します。
  2. イベント ハンドラー内のコントロールの初期値を設定します。

例: this.Loaded += (sender, e) => { tbHeadline.Background = Brushes.Gray; }

于 2013-05-20T08:18:47.377 に答える