在我的xaml中,我有一个文本框,绑定到我的viewmodel中的属性:
XAML:
<TextBox HorizontalAlignment="Left" Height="30" Margin="10,10,0,0" TextWrapping="Wrap" Text="{Binding City}" VerticalAlignment="Top" Width="191" Grid.Column="1" Grid.Row="6"/>
查看型号:
public class MyViewModel : INotifyPropertyChanged
{
...
public string City
{
get { return _model.Address.City; }
set
{
if (_model.Address.City != value)
{
_model.Address.City = value;
RaisePropertyChanged("City");
}
}
}
...
}
双向数据绑定效果很好,但似乎只有在焦点从城市输入更改为另一个对象时才设置属性值。
我想在按下热键(ENTER)时保存我的上下文。当我现在进入城市并在之后按ENTER时,该属性不包含新值。当我进入城市时,将焦点更改为另一个对象并按ENTER键,该属性包含正确的值。
如何解决这个问题?
答案 0 :(得分:4)
使用UpdateTrigger
并将其设置为PropertyChanged
。
<TextBox HorizontalAlignment="Left" Height="30" Margin="10,10,0,0" TextWrapping="Wrap" Text="{Binding Country, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" VerticalAlignment="Top" Width="191" Grid.Column="1" Grid.Row="6"/>