簡體   English   中英

System.Byte在datagrid列中

[英]System.Byte in datagrid column

我使用以下查詢:

string query = @"SELECT r.id, user_name, user_phone, date_create, REPLACE( date_payment,  '0000-00-00 00:00:00',  'Не оплачено' ) as 
                date_payment, payment_method, amount, rs.name_ru
                FROM request AS r, request_status AS rs
                WHERE r.status = rs.id";

我通過以下方式綁定datatemplate:

DataTemplate>
    <TextBlock VerticalAlignment="Center" Text="{Binding date_payment}" Width="135" />
</DataTemplate>

拋出正確的輸出,除了“ date_payment ”,其輸出值為“ System.Byte [] ”。 請幫忙!!!

感謝MBen

class ByteArrayToString : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null)
            {
                var listOfBytes = value as Byte[];
                string output = "";
                output = System.Text.Encoding.UTF8.GetString(listOfBytes);
                return output;
            }

            return "";
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return DependencyProperty.UnsetValue;
        }
    }

date_payment是一個數組,你沒有為WPF提供任何顯示它的方法,所以它調用ToString 您可以為它提供數據轉換器。

將資源添加到您的窗口或頁面:

   <Window.Resources>
        <local:ByteArrayToString x:Key="ByteArrayConverter" />
    </Window.Resources>

TextBlock使用它:

<TextBlock VerticalAlignment="Center" Text="{Binding date_payement, Converter={StaticResource ByteArrayConverter}}" Width="135" />

現在您需要添加一個執行轉換的新類:

    class ByteArrayToString : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
        {
            if (value != null)
            {
                var listOfBytes = value as Byte[];
                string output ="";
                output = listOfBytes.Aggregate(output, (current, elemt) => current + elemt.ToString());
                return output;
            }

            return "";
        }

        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
        {
            return DependencyProperty.UnsetValue;
        }
    }

這件事發生在我身上。 這似乎是由於連接器中的錯誤。 嘗試將日期列轉換為CHAR。 它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM