我有文本字段绑定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没有改变因为生成了一些异常。这里验证工作正常。我该怎么办?
答案 0 :(得分:1)
尝试设置{Binding ProductPrice Mode=TwoWay}
编辑:回复评论
我看到你有两个选择:
string ProductPriceValue
属性(在封面下使用int
类型的原始属性)并将文本框绑定到它IValueConverter
并在绑定中使用它只是想知道为什么你没有为double
属性
ProductPrice
类型