我想綁定一個Double?到一個文本框,我有一個問題,因爲當用戶清空文本框驗證發生。 我以爲我的應用程序在某些地方無法找到驗證,所以我創建了一個快速應用程序來測試。將TextBox綁定爲Nullable 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>
當運行該應用程序綁定到值2文本框,是空的,但如果我鍵入一個值,然後刪除它,當文本框失去焦點它示出了一個錯誤。當我輸入一個值時,它只會消失。
我發現this post建議使用一個字符串,但他原本使用雙精度型而不是double?
我該如何做這項工作?是使用字符串的唯一方法嗎?
對我來說,綁定到雙重似乎很奇怪?不允許我設置空值。
你確定你沒有鍵入無法被解析到一個'double',例如值。一個字?你提到的那個'錯誤'*可能只是告訴你,你不能將文本輸入到數字屬性中。 – Sheridan
我剛剛將TextBox留空,Eugene的建議有意義並修復了問題。 – Dzyann