一开始没写UpdateSourceTrigger=LostFocus,双向绑定一直失败。UpdateSourceTrigger属性取UpdateSourceTrigger枚举的值之一。默认值为Default,该值返回目标依赖属性的默认UpdateSourceTrigger值。但是,对于大多数依赖属性来说,默认值为PropertyChanged,而Text属性应取LostFocus。
xaml代码
<DataGridTemplateColumn Header="操作" Width="240*" MinWidth="240" CellStyle="{StaticResource cellCenterStyle}">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox x:Name="txtResult" Text="{Binding Path=InspectValue, Mode=TwoWay,UpdateSourceTrigger=LostFocus}" Style="{StaticResource InputTextBox}" MaxLength="255">
</TextBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
model代码:
// 结果值
private string _inspectValue;
/// <summary>
/// 输入的结果
/// </summary>
public string InspectValue
{
get => _inspectValue;
set
{
_inspectValue = value;
// 双向绑定
RaisePropertyChanged("InspectValue");
}
}
感谢:https://www.e-learn.cn/content/qita/2755265