在我的 xaml 中,我有一个文本框,它绑定到我的视图模型中的一个属性:
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"/>
Run Code Online (Sandbox Code Playgroud)
查看型号:
public class MyViewModel : INotifyPropertyChanged
{
...
public string City
{
get { return _model.Address.City; }
set
{
if (_model.Address.City != value)
{
_model.Address.City = value;
RaisePropertyChanged("City");
}
}
}
...
}
Run Code Online (Sandbox Code Playgroud)
双向数据绑定效果很好,但似乎只有在焦点从城市输入更改为另一个对象时才设置属性值。
我想在按下热键 (ENTER) 时保存我的上下文。当我现在输入一个城市并随后按 ENTER 时,该属性不包含新值。当我输入一个城市时,将焦点更改为另一个对象并按 ENTER,该属性包含正确的值。
如何解决这个问题呢?
使用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"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1252 次 |
| 最近记录: |