2
我從SQL服務器表中查詢數據表。
數據表只包含一列,它將具有0-9的數字。
我需要在WPF數據網格中顯示。我已經完成顯示爲普通的數據網格。
但我需要顯示一個單獨的圖片和該列中的特定號碼的一些文本。
Datagrid有可能嗎?根據WPF數據網格中的列值顯示圖像
我從SQL服務器表中查詢數據表。
數據表只包含一列,它將具有0-9的數字。
我需要在WPF數據網格中顯示。我已經完成顯示爲普通的數據網格。
但我需要顯示一個單獨的圖片和該列中的特定號碼的一些文本。
Datagrid有可能嗎?根據WPF數據網格中的列值顯示圖像
使用DataGridTemplateColumn和使用IValueConverter
,將改變你的int
爲ImageSource
綁定它下面是一個小的工作示例:
MainWindow.xaml
<Window x:Class="StackOverflow.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:local="clr-namespace:StackOverflow"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<local:IntToImageConverter x:Key="IntToImageConverter" />
</Window.Resources>
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Converter={StaticResource IntToImageConverter}}" />
<TextBlock Text="Image number : " Margin="5, 0, 0, 0" />
<TextBlock Text="{Binding}" Margin="5, 0, 0, 0" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
<sys:Int32>0</sys:Int32>
<sys:Int32>1</sys:Int32>
</DataGrid>
</Window>
主窗口。 xaml.cs
using System;
using System.Windows;
using System.Windows.Data;
using System.Windows.Media;
using System.Windows.Media.Imaging;
namespace StackOverflow
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
}
public class IntToImageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
ImageSource result = null;
var intValue = (int)value;
switch (intValue)
{
case 0:
{
result = new BitmapImage(new Uri(@"your_path_to_image_0"));
break;
}
case 1:
{
result = new BitmapImage(new Uri(@"your_path_to_image_1"));
break;
}
}
return result;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
}
我應該在哪裏加載數據表(從數據庫服務器查詢)到datagrid? – Olivarsham
那麼這是另一個問題:)你不知道如何從表中檢索數據並將其綁定到DataGrid?我給你的例子是一個沒有綁定的簡單DataGrid,只是爲了說明如何用圖像替換數字,這是你的原始問題 – Sisyphe
我已經從數據庫服務器取回。如何附加到datagrid? – Olivarsham