如何将数据库从数据库添加到WPF数据网格
问题描述:
大家好。
我正在使用WPF-Datagrid
我需要从数据库向datagrid添加一个图像字段。以字符串形式存储在表中的图像 - 这只是文件名('* .png')。我必须将其转换为位图并使用表中的其他文本字段添加到datagrid。
有什么建议吗?
(.NET 3.5; WPF Toolkit feb 2010 3.5.50211)
Hello everyone
I'm working with the WPF-Datagrid
I need to add an image field to datagrid from database. Image stored in table in string type - this is file name only('*.png'). I have to convert it to bitmap and add to datagrid with other text fields from table.
any suggestions?
(.NET 3.5; WPF Toolkit feb 2010 3.5.50211)
答
I希望以下解决方案能为您提供帮助
主要特点:
1)DataTable:存储来自数据库的数据并将此数据与数据网格绑定
2)ValueConverter:将列值转换为指定的图像源
3)DataTemplate:具有图像类型的网格列的模板
1)DataTable:这里我使用静态表你可以从数据库中获取数据
DataTable dt = new DataTable( );
dt.Columns.Add(名称);
DataRow dr = dt.NewRow();
dr [名称] =tick;
dt.Rows.Add(dr);
grid1.ItemsSource = null;
grid1.ItemsSource = dt.DefaultView;
2)价值转换器
I Hope following solution will help you
Key Features:
1) DataTable : to store data from database and to bind this data with data grid
2) ValueConverter : Convert column value to specified image source
3) DataTemplate : Template for grid column having image type
1) DataTable : here i have used static table you can fetch data from database
DataTable dt = new DataTable();
dt.Columns.Add("Name");
DataRow dr = dt.NewRow();
dr["Name"] = "tick";
dt.Rows.Add(dr);
grid1.ItemsSource = null;
grid1.ItemsSource = dt.DefaultView;
2) Value Converter
[ValueConversion(typeof(string), typeof(SolidColorBrush))]
public class StringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string val = value.ToString();
return "/FormWithTab;component/Images/" + val + ".png";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotSupportedException();
}
}
3)DataTemplate
3) DataTemplate
<pre><window x:class="FormWithTab.Window2" xmlns:x="#unknown">
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:wpf="http://schemas.microsoft.com/wpf/2008/toolkit" Loaded="Window_Loaded"
xmlns:local="clr-namespace:FormWithTab"
Title="Window2" Height="300" Width="300">
<window.resources>
<local:stringconverter x:key="NameToStringConverter" xmlns:local="#unknown" />
<datatemplate x:key="ImageColTemplate">
<image x:name="img" stretch="None" horizontalalignment="Center" source="{Binding Name, Converter={StaticResource NameToStringConverter}}" />
</datatemplate>
</window.resources>
<grid>
<wpf:datagrid x:name="grid1" verticalalignment="Top" height="150" autogeneratecolumns="False" xmlns:wpf="#unknown">
<wpf:datagrid.columns>
<wpf:datagridtemplatecolumn header="Image" celltemplate="{StaticResource ImageColTemplate}" />
</wpf:datagrid.columns>
</wpf:datagrid>
</grid>
</window>
如果您需要完整的解决方案。我可以转发你。
If you need complete solution for this . i can forward you.