2009-12-23 5 views
2

나는 하나의 이미지 & 하나의 텍스트 열 동적 WPF DataGrid에 두 개의 열을 추가하고 싶습니다.wpf datagrid 열의 이미지를 프로그래밍 방식으로 표시하려면 어떻게합니까?

XAML 코드 : 뒤에

<Grid><DataGrid AutoGenerateColumns="False" Height="Auto" HorizontalAlignment="Stretch" Margin="0" Name="grid" VerticalAlignment="Stretch" Width="Auto" ></DataGrid></Grid> 

코드 :

DataGridTextColumn col = new DataGridTextColumn(); 
    col.Header =Text1; 
    col.Binding =Text1; 
    grd.Columns.Add(col); 

이 어떻게 열에 이미지 열 또는 쇼 이미지를 추가하는 방법은 무엇입니까?

답변

4

Anvaka는 DataGridTemplateColumn를 사용 할 수 말했듯이. C#에서이 같은 DataGridTemplateColumn를 만들 추가 할 수 있습니다, 여기에 내가 DataGridTemplateColumn에있는 CheckBox을 추가했습니다.

다음
DataGridTemplateColumn col1 = new DataGridTemplateColumn(); 
col1.Header = "MyHeader"; 
FrameworkElementFactory factory1 = new FrameworkElementFactory(typeof(Image)); 
Binding b1 = new Binding("Picture"); 
b1.Mode = BindingMode.TwoWay; 
factory1.SetValue(Image.SourceProperty, b1); 
DataTemplate cellTemplate1 = new DataTemplate(); 
cellTemplate1.VisualTree = factory1; 
col1.CellTemplate = cellTemplate1; 
datagrid.Columns.Add(col1); 

그림 컬렉션 DataGridItemsSource에 할당 된 클래스 ImageSource 유형의 속성입니다.

+0

나는이 코드를 시도했다. 그러나 그것은 이미지를 위해 작동하지 않는다. FrameworkElementFactory factory1 = 새 FrameworkElementFactory (typeof (Image)); 그 외 어떤 시도를 할 수 있습니까? – dee

+0

답변을 업데이트했습니다. – viky

+0

이 'Image'유형의 예외는 FrameworkElement, FrameworkContentElement 또는 Visual3D에서 파생되어야합니다. – dee

0

사용 DataGridTemplateColumn을 제안하십시오. Window.Resources에서 세포 템플릿을 정의하고 열의 CellTemplate 속성을 설정 FindResource()를 사용합니다.

희망이 도움이됩니다.

+0

안녕 Anvaka, 당신은 내게 몇 가지 예 또는 코드를 제공하십시오 reply.Can 빠른에 대한 감사합니다? – dee

+0

Dee, 링크를 따라 가십시오. 이미 예제가 있습니다. 귀하가 제공 – Anvaka

+0

링크는 XAML의 code.I가 뒤에 코드 (C#을)의 열을 추가 할 필요가 포함되어 있습니다. – dee

관련 문제