[C#][WPF]DataGrid於Decimal?型態的欄位中輸入空字串時,自動以Null取代

  • 1306
  • 0
  • 2016-04-02

DataGrid於Decimal?型態的欄位中輸入空字串時,自動以Null取代。

當資料來源(如:DataTable)的欄位型態為Decimal?,代表資料可以是數字也可以是null,
在繫結至DataGrid之後,當使用者在該欄位中的格子資料清除時,會發生型態不合的警告,
因為資料清除時該格子為空字串,型態是String,但是欄位型態為Decimal?,
為了讓使用者可以清空格子中的資料,應將空字串轉為null,使符合欄位型態。

作法為:
在xaml的資料繫結裡使用TargetNullValue屬性,指定需要轉成null的字串即可。

xaml語法如下:

<DataGridTextColumn 
 Header="重量" 
 Binding="{Binding Weight, TargetNullValue=''}"
/>