文本框绑定到ViewModel,如果其内容已更新,ViewModel会将更新提交给源(通常为db)。
XAML方应该是这样的。
<TextBox Grid.Column="1" Grid.Row="1"
Text="{Binding Path=LowVoltage, StringFormat={}{0:N3}, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"/>
同时,在ViewModel中,这样更新是一个不错的选择吗?
private float lowVoltage;
public float LowVoltage
{
get { return this.lowVoltage; }
set
{
if (this.lowVoltage != value)
{
this.lowVoltage = value;
**//dbContext.Submit(); --here**
this.RaisePropertyChanged("LowVoltage");
}
}
}
答案 0 :(得分:1)
我不会选择在属性设置器中进行数据库操作,更好地使用命令,例如访问后台代码LostFocus事件处理程序中的ViewModel并执行它或在XAML中使用EventTrigger。
<Grid xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SomeEvent">
<i:InvokeCommandAction Command="{Binding Path=SomeCommand, Mode=OneWay}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Grid>