我想在数据库的DataGrid
中显示图像,而我正在使用WPF
[
我可以检索图像名称,如图像列中所示,但我无法显示它。
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path=Studentid}"/>
<DataGridTemplateColumn Header="Picture" Width="50">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Stretch="Fill" Source="{Binding Images/Students/ImageColumnNameInDatabase}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
我的c#代码用于填充datagrid
conn = new SqlConnection(connstring);
conn.Open();
cmd = new SqlCommand("Select * From AddStudentTb", conn);
try
{
DataGridView dv = new DataGridView();
SqlDataAdapter da = new SqlDataAdapter(cmd);
da.Fill(dt);
datagridv.ItemsSource = dt.DefaultView;
}
finally
{
conn.Close();
}
答案 0 :(得分:0)
尝试在DataTemplate中绑定图像源,例如
<DataGridTemplateColumn Header="Image" Width="SizeToCells" IsReadOnly="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding Image}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
或者您可以参考this问题。
答案 1 :(得分:0)
这就是我所做的 使用这样的图像控件在数据网格中添加数据模板
<DataGridTemplateColumn Header="File Type" Width="*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Height="25" Width="50" Source="{Binding FileIcon}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
如您所见,我的图像绑定了一个名为“ FileIcon”的属性,该属性在此类Version中使用
public class Version
{
public string FileIcon { get; set; }
}
现在只需要做的就是绑定,提供指向“ FileIcon”的路径并像这样更新DataGrid的ItemSource
ObservableCollection<Version> items = new ObservableCollection<Version>();
items.Add(new Version()
{
FileIcon = "Your Database Variable",
});
YourDataGrid.ItemsSource = null;
YourDataGrid.ItemsSource = items;