После получения значений из sql в datatable мне нужно преобразовать byte [] в изображение и добавить в datatable после этого представления в сетке данных - PullRequest
0 голосов
/ 23 декабря 2011

Я пытаюсь просмотреть значения из базы данных в DataGrid. У меня есть столбец с именем signature, который содержит изображения, хранящиеся в виде байтовых массивов. Однако я не знаю, как просматривать эти изображения в DataGrid.

Вот мой код:

DataTable dt = new DataTable("CustomerInformations");
string Cn = "Data Source=\\SQLEXPRESS;Initial Catalog=Export;Integrated Security=true;";
SqlConnection con = new SqlConnection(Cn);
con.Open();
SqlDataAdapter sqlDa = new SqlDataAdapter("select [Date],[CustomerName],[Amount],[Bank] ,[Signature] ,[IMEINumber] from PaymentReceipt where ReceiptID = 44", con);
sqlDa.Fill(dt);
con.Close();

this.dataGrid1.DataContext = dt;

В базе данных есть столбец с именем signature. Тип данных varbinary.

Прежде, чем я назначил объект данных datagrid1, мне нужно преобразовать подпись (byte[]) в изображение.

Вот мой код для преобразования byte[] в изображение:

foreach (DataRow dr in dt.Rows)
{
    byte[] bytes = (byte[])dr[4];
    MemoryStream stream = new MemoryStream(bytes);

    BitmapImage image = new BitmapImage();
    image.BeginInit();
    image.StreamSource = stream;
    image.EndInit();
    return image;
}

Я не знаю, как добавить возвращаемое изображение в поле подписи в datatable. Можете ли вы помочь мне?

Вот мой файл XAML

<Grid>
    <DataGrid AutoGenerateColumns="true" Name="dataGrid1" ItemsSource="{Binding}"  Height="260" Width="705">
    </DataGrid>
</Grid>

1 Ответ

0 голосов
/ 23 декабря 2011

Я не думаю, что вы можете сделать это с колонками AutoGenerate. Вам необходимо привязать столбец изображения к ValueConverter. Это преобразует из файла в изображение, но вы должны начать.
http://social.msdn.microsoft.com/Forums/en/wpf/thread/ea1fd63b-738c-40ca-850e-994eb21dccea Вам может понадобиться шаблонный столбец для размещения средства просмотра изображений.

...