定义stringformat时,TextBox不更新其视觉效果
本文关键字:视觉 更新 stringformat TextBox 定义 | 更新日期: 2023-09-27 18:05:29
我想在我的虚拟机上绑定一个文本框。在XAML中,我有这个:
<TextBox Grid.Row="2" Grid.Column="1" Margin="0,0,0,5">
<Binding Path="Offset" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" StringFormat="{}{0:F2}}">
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
在VM上我有这个:
public double Offset
{
get
{
return this.offset;
}
set
{
if (value <= 0)
{
throw new Exception("Not Valid!");
}
this.offset = value;
this.NotifyOfPropertyChange(() => this.Offset);
}
}
但是当我在vm上设置偏移值时,视图上没有显示任何内容。
如果我删除字符串格式,我在视图上得到合适的显示。
<TextBox Grid.Row="2" Grid.Column="1" Margin="0,0,0,5">
<Binding Path="Offset" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" >
<Binding.ValidationRules>
<ExceptionValidationRule />
</Binding.ValidationRules>
</Binding>
</TextBox>
我怎么能有两个字符串格式,也可以设置虚拟机上的偏移量?
最后你得到了一个额外的}
,把它改成:
StringFormat="{}{0:F2}"
(这可能是在复制<TextBox Text="{Binding Offset, StringFormat={}{0:F2}}" />
时留下的)