WPF でのテキストボックスバインディングの更新 [重複] 質問する

WPF でのテキストボックスバインディングの更新 [重複] 質問する

MessageText プロパティは、別のコントロールをクリックしたときにのみ更新されます。さらに、任意のボタンを押しても、その Click ハンドラーは実行されず、代わりに MessageText セットが実行されます。頭がおかしくなりそうです。

<TextBox x:Name="messageText" Grid.Row="1" Grid.Column="0"
         TextWrapping="Wrap" Text="{Binding Path=MessageText, Mode=TwoWay}"/>
private void ChatView_Loaded(object sender, RoutedEventArgs e)
{
    DataContext = viewModel;
}
public string MessageText
{
    get
    {
        return this.messageText;
    }
    set
    {
        this.messageText = value;
        OnProperyChanged("MessageText");
    }
}

ベストアンサー1

UpdateSourceTriggerをPropertyChangedに調整できます

<TextBox x:Name="messageText" Grid.Row="1" Grid.Column="0"
                 TextWrapping="Wrap" Text="{Binding Path=MessageText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>

おすすめ記事