gpt4 book ai didi

c# - 将 TextBox 绑定(bind)到 Nullable Double?

转载 作者:太空狗 更新时间:2023-10-29 17:39:11 33 4
gpt4 key购买 nike

我正在尝试绑定(bind)一个 Double?到文本框,我遇到了一个问题,因为当用户清空文本框时会发生验证。我认为我的应用程序在某个我找不到的地方进行了验证,所以我创建了一个快速应用程序来测试。

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,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,5,0">Double?:</TextBlock>
<TextBox Width="50px" Text="{Binding Value2}"></TextBox>
</StackPanel>

当我运行应用程序时,绑定(bind)到 Value2 的 TextBox 为空,但如果我键入一个值然后删除它,当 TextBox 失去焦点时它会显示错误。它只会在我键入一个值时消失。

我找到了 this post建议使用字符串,但他最初使用的是 double 而不是 double?

我怎样才能使这项工作?是使用字符串的唯一方法吗?

绑定(bind)到 double? 不允许我设置空值,这对我来说似乎很奇怪。

最佳答案

首先。

不是这个:

<TextBox Width="50px"

但是这个:

<TextBox Width="50"

第二:如果你这样做的话,你的案子应该得到解决:

代替:

 <TextBox Width="50px" Text="{Binding Value2}"></TextBox>

做:

<TextBox Width="50" Text="{Binding Value2, TargetNullValue=''}"></TextBox>

希望对你有帮助

关于c# - 将 TextBox 绑定(bind)到 Nullable Double?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21481123/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com