我在我的數據庫中的一個表中有一個名爲price的字段,其類型爲varchar
。在我的窗口中,我有一個listview
和一個gridview
在它綁定到該表。我已經設置了GridViewColumnHeader_Click
事件gridview
的如下:數據表排序行爲(雙值不被視爲數字)
private void GridViewColumnHeader_Click(object sender, RoutedEventArgs e)
{
datatable.DefaultView.Sort = "price ASC";
datatable.DefaultView.ToTable();
}
它排序價格列,但它把價格值string
S,所以它的排序爲價格string
S,而不是數字。此行爲是預期的,因爲價格字段的類型是varchar
。爲了解決這個問題,我轉換價格進入double
如下:
<GridViewColumn Header="price" DisplayMemberBinding="{Binding price, Converter={StaticResource convert1}}" />
和:
public class dataConvert1 : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return double.Parse(value.ToString());
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) { return new object(); }
}
但這並沒有解決問題,價格仍視爲string
不是double
秒。 這個問題可能看起來是重複的。但是,沒有人回答相同的問題(這裏或其他網站),這個問題仍然是一個問題。請幫助解決這個問題。 (請不要建議從varchar
到int
改變字段價格型)
這就是答案題。幾分鐘前我找到了這個解決方案,我想寫出答案,但幸運的是,您已經完成了任務,謝謝@ mm8。 – Masoud