2012-12-28 91 views
2

我從SQL服務器表中查詢數據表。
數據表只包含一列,它將具有0-9的數字。
我需要在WPF數據網格中顯示。我已經完成顯示爲普通的數據網格。
但我需要顯示一個單獨的圖片和該列中的特定號碼的一些文本。
Datagrid有可能嗎?根據WPF數據網格中的列值顯示圖像

回答

5

使用DataGridTemplateColumn和使用IValueConverter,將改變你的intImageSource

綁定它下面是一個小的工作示例:

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(); 
     } 
    } 
} 
+0

我應該在哪裏加載數據表(從數據庫服務器查詢)到datagrid? – Olivarsham

+0

那麼這是另一個問題:)你不知道如何從表中檢索數據並將其綁定到DataGrid?我給你的例子是一個沒有綁定的簡單DataGrid,只是爲了說明如何用圖像替換數字,這是你的原始問題 – Sisyphe

+0

我已經從數據庫服務器取回。如何附加到datagrid? – Olivarsham

相關問題