2013-01-17 5 views
0

이것은 내 데이터 격자이며 그리드 열에 이미지를 표시하려고하지만 이미지를 표시하는 대신 내 텍스트 System.Windows.Media.Imaging.BitmapImage을 표시하고 있습니다. DataGrid 열에 이미지를 추가하는 방법은 무엇입니까?Datagrid에 이미지 추가

이 내가 시도 것입니다 :

Dictionary dict1=new Dictionary < string,object>(); 

string keyimage="Image"; 

object a1 = new BitmapImage(); 

a1=Imaging.CreateBitmapSourceFromHIcon(SystemIcons.Information.Handle, Int32Rect.Empty, null); 

dict1.Add(keyimage, a1); 

dict1는 데이터 그리드에 대한 Itemsource 역할이 ........... 방법 이미지는 데이터 그리드 컬럼에 표시 할 수 있도록?

+0

어떤 열 유형 : 당신이 사전을 사용하고 있기 때문에

은, 같은를 바인딩? – Dennis

+0

내 질문에 .......... 이미지를 표시하는 데 사용해야하는 열 형식은 무엇입니까? – Raghu

+0

이 사전에 무엇이 있습니까, 이미지 만 있습니까? –

답변

2

DataGridTemplateColumn을 사용하고 이미지를 넣었는지 확인하십시오. 당신은 이미지를 표시하기 위해 사용하는

<Image Binding="{Binding Height="25" Width="50" Source="{Binding Value}" /> 
0

Column 데이터 유형이 itemsource 데이터 유형과 일치하지 않는다고 가정합니다. Grid Column과 Itemsource 모두에 대해 동일한 데이터 유형 Image를 만들어야합니다.

0

는 그 후 자원 폴더

에 프로젝트에 모든 이미지를 추가 도움말이 데이터 그리드 바인딩에 아래의 코드를 시도

DataTable dtab = new DataTable(); 
dtab.Columns.Add("imageColumn", typeof(BitmapImage)); 
//Uploading dtab with Images from DataBase 

FrameworkElementFactory factory = new FrameworkElementFactory(typeof(Image)); 
Binding bind = new System.Windows.Data.Binding("imageColumn"); 
factory.SetValue(Image.SourceProperty, bind); 
DataTemplate cellTemplate = new DataTemplate() { VisualTree = factory }; 
DataGridTemplateColumn imgCol = new DataGridTemplateColumn() 
{ 
    Header="image", 
    CellTemplate = cellTemplate 
}; 
DataGrid dg = new DataGrid(); 
dg.Columns.Add(imgCol); 
dg.ItemsSource = dtab.DefaultView; 

희망 : 내 WPF 프로젝트에서 나는 이미지 내 열 데이터 템플릿을 만들어 행사. 여기에 이미지 로고를 추가했습니다.

DataGridViewImageColumn imageColoumn = new DataGridViewImageColumn(); 
     imageColoumn.HeaderText = "Img"; 
     imageColoumn.Image = null; 
     imageColoumn.Name = "DataPic"; 
     imageColoumn.Width = 150; 
     dataGridView1.Columns.Add(imageColoumn); 

     foreach (DataGridViewRow row in dataGridView1.Rows) 
     { 
      DataGridViewImageCell cell = row.Cells[1] as DataGridViewImageCell; 
      cell.Value = (System.Drawing.Image)Properties.Resources.logo; 
     } 
+0

DataGridViewImageColumn 네임 스페이스 또는 뭔가 이상 wpf datagrid 및 datagridview 사용하고 있습니다 – Raghu

+0

다음이 시도하십시오. 링크 .... http : //stackoverflow.com/questions/7938779/image-column-in-wpf-datagrid ... – Pandian

+0

나는 아주 좋은 데이터 집합을 가지고 쉽게 바인딩 할 수 있기 때문에 AutoGenerateColumns = "True"로 설정했다. 그것은 DataGrid와 함께하지만 지금은 datadrid에 표시되지 않는 데이터 세트에 이미지를 추가하려고 ... xaml에서 아무 변화도 내가 할 수있는 일은 C# 코드에서 뭔가를하는 것입니다 ...... .... – Raghu