2016-10-07 14 views
1

UWPのTextBox.Textバインディングに問題があります。私は UWP TextBoxテキストバインドが機能しない

私はXAMLで同じスコープ内のTextBoxとButtonを持っている...

を年間のWPFをやって、通常はXAMLで私がやっている知っているが、動作するように、これは結合取得することはできませんされています

<StackPanel Orientation="Horizontal" 
      Margin="0,10,0,0"> 
    <TextBox Width="200" Text="{Binding SearchText, UpdateSourceTrigger=PropertyChanged}"/> 
    <Button Margin="10,0,0,0" 
      Command="{Binding SearchBusCommand}">Go</Button> 
</StackPanel> 

そして、私はテキストボックスにテキストを入力し、ボタンを押して、コマンドが実行され、検索テキスト値がnullの場合にバインドプロパティがViewModelに

public ICommand SearchBusCommand { get; } 

public string SearchText { get; set; } 

しかし、同じスコープ内にある...

私は、TextBoxにテキストを入力すると、SearchTextプロパティがText値で更新されることを期待しています。

SearchTextプロパティの値をViewModelから設定すると、TextBoxに表示されます。

答えて

2

これは、UWPではTextBox.TextプロパティのバインディングがデフォルトでOneWayになっているようです。

バインディングをTwoWayに設定して動作させる必要がありました。

<TextBox Width="200" Text="{Binding SearchText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/> 

なぜでしょうか?

+0

パフォーマンスの理由。そしてx:バインドはデフォルトではワンタイムです – AlexDrenea

+0

@AlexDreneaしかし、なぜOneWayをTextBox.Textにバインドしたいですか?これがTextBlockの目的です。 –

+0

@GlenThomas BindingはどこでもデフォルトモードのOneWayを使用していますが、使用されているコントロール/プロパティに依存しません。変更されると混乱する可能性があります –

関連する問題