次のサンプルでは、TextBoxに新しい文字列を入力してタブアウトすると、TextBlockは更新されますが、TextBoxは入力した値を保持し、変更された文字列で更新されます。この動作を変更する方法はありますか?
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}" Margin="106,240,261,187">
<StackPanel>
<TextBox Text="{Binding MyProp, Mode=TwoWay}"/>
<TextBlock Text="{Binding MyProp}"/>
</StackPanel>
</Grid>
</Page>
public class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public ViewModel()
{
MyProp = "asdf";
}
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
protected bool SetField<T>(ref T field, T value, string propertyName)
{
if (EqualityComparer<T>.Default.Equals(field, value)) return false;
field = value;
OnPropertyChanged(propertyName);
return true;
}
private string m_myProp;
public string MyProp
{
get { return m_myProp; }
set
{
m_myProp = value + "1";
OnPropertyChanged("MyProp");
}
}
}