wpf数据绑定问题
我有与 int 属性 ProductPrice 绑定的文本字段和按钮,如果我在文本框中放入一些错误的数据(例如 <= 0 的数字),该按钮将被禁用:
<TextBox Grid.Row="4" Grid.Column="2"
Text="{Binding ProductPrice, ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}"
Validation.ErrorTemplate="{StaticResource ValidationErrorTemplate}"/>
<Button HorizontalAlignment="Right" Command="{Binding Path=DataContext.AddProductCommand,
RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}}"
Margin="2" Width="60" Grid.Row="6" Grid.Column="2" Content="Add" />
但是如果我在文本框中放入一些文本,则按钮不会被禁用。我认为这是因为 ProductPrice 属性没有更改,因为生成了一些异常。至此验证工作正常。我应该怎么办?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
尝试设置
{Binding ProductPrice Mode=TwoWay}
顺便说一句,会抛出哪个异常?
编辑:回答评论
我看到您有两个选项:
string ProductPriceValue
属性(在封面下使用int
类型的原始属性) )并将文本框绑定到它IValueConverter
并在绑定中使用它只是想知道为什么你不使用
double
类型作为ProductPrice
属性Try to set
{Binding ProductPrice Mode=TwoWay}
BTW, which exception are thrown?
EDIT: Answer to the comments
I see two options which you are have:
string ProductPriceValue
property (under the cover use original one ofint
type) and bind textbox to itIValueConverter
and use it in bindingJust wondering why you're not using
double
type forProductPrice
property