2009-12-23 345 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,因爲這裏我添加了一個CheckBoxDataGridTemplateColumn

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); 

下面圖片是ImageSource類型,其中收集被分配到DataGridItemsSource類的屬性。

+0

我試過這個code.But它不適用於圖像。 FrameworkElementFactory factory1 = new FrameworkElementFactory(typeof(Image)); 我還可以嘗試什麼? – dee 2009-12-23 13:12:09

+0

我已經更新了答案。 – viky 2009-12-23 13:31:14

+0

得到這個異常'圖像'類型必須從FrameworkElement,FrameworkContentElement或Visual3D派生。 – dee 2009-12-23 14:06:15

0

使用DataGridTemplateColumn。在Window.Resources中定義單元格模板並使用FindResource()設置列的CellTemplate屬性。

希望這會有所幫助。

+0

嗨Anvaka, 感謝您的快速回復。請給我一些例子或代碼? – dee 2009-12-23 10:16:05

+0

迪,請按照鏈接。例子已經在那裏。 – Anvaka 2009-12-23 10:59:14

+0

您提供的鏈接包含xaml代碼。我需要在代碼後面添加列(c#)。 – dee 2009-12-23 12:35:33

相關問題