我想将文本框绑定到我的VM上的doule。在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上将值设置为Offset时,视图上没有显示任何内容。
如果删除字符串格式,我会在View上显示合适的内容。
<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并在VM上设置偏移?
答案 0 :(得分:1)
最后你有一个额外的}
,将其更改为:
StringFormat="{}{0:F2}"
(这可能是在<TextBox Text="{Binding Offset, StringFormat={}{0:F2}}" />
)