c# – 将TextBox绑定到Nullable Double?
发布时间:2020-12-15 08:43:46 所属栏目:百科 来源:网络整理
导读:我想绑定一个Double?到TextBox,我遇到了问题,因为当用户清空文本框时,会发生验证. 我认为我的应用程序在我找不到的某个地方进行了验证,所以我创建了一个快速应用程序来测试. public partial class MainWindow : Window{ public MainWindow() { InitializeCo
我想绑定一个Double?到TextBox,我遇到了问题,因为当用户清空文本框时,会发生验证.
我认为我的应用程序在我找不到的某个地方进行了验证,所以我创建了一个快速应用程序来测试. public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); DataContext = new ViewModel() {Value = 3,Value2 = null}; } } public class ViewModel { public double Value { get; set; } public double? Value2 { get; set; } } xaml <StackPanel Grid.Row="0" Orientation="Horizontal" Margin="5" Height="20px"> <TextBlock Margin="0,5,0">Double:</TextBlock> <TextBox Width="50px" Text="{Binding Value}"></TextBox> </StackPanel> <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="5" Height="20px"> <TextBlock Margin="0,0">Double?:</TextBlock> <TextBox Width="50px" Text="{Binding Value2}"></TextBox> </StackPanel> 当我运行应用程序时绑定到Value2的TextBox为空,但如果我键入一个值然后删除它,当TextBox失去焦点时它会显示错误.它只会在我键入值时消失. 我发现this post建议使用一个字符串,但他最初使用的是双倍而不是双倍? 我怎样才能做到这一点?是使用字符串的唯一方法吗? 绑定到双倍似乎很奇怪?不允许我设置空值. 解决方法
首先.
不是这个: <TextBox Width="50px" 但是这个: <TextBox Width="50" 第二:如果你这样做,你的情况应该解决: 代替 : <TextBox Width="50px" Text="{Binding Value2}"></TextBox> 做: <TextBox Width="50" Text="{Binding Value2,TargetNullValue=''}"></TextBox> 希望有所帮助 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |