wpf数据绑定问题

发布于 2024-11-27 14:46:45 字数 720 浏览 1 评论 0 原文

我有与 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 属性没有更改,因为生成了一些异常。至此验证工作正常。我应该怎么办?

I have text field that binding with int property ProductPrice and button that is disabled if I put in textbox some wrong data (e.g. number that <= 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" />

But if I put in textbox some text then button is not disabled. I think it because property ProductPrice is not changed because was generate some exception. Herewith validation work normal. What should I do?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

时光病人 2024-12-04 14:46:46

尝试设置 {Binding ProductPrice Mode=TwoWay}

顺便说一句,会抛出哪个异常?

编辑:回答评论

我看到您有两个选项:

  1. 引入string ProductPriceValue属性(在封面下使用int类型的原始属性) )并将文本框绑定到它
  2. 实现 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:

  1. Introduce string ProductPriceValue property (under the cover use original one of int type) and bind textbox to it
  2. Implement IValueConverter and use it in binding

Just wondering why you're not using double type for ProductPrice property

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文