【发布时间】:2014-07-20 01:41:35
【问题描述】:
我正在尝试在 DataGrid-Column 中显示其他数据旁边的图像。 我的模型如下所示:
public class Person
{
public string Name { get; set; }
public string Address { get; set; }
public Bitmap Image { get; set; }
}
视图模型:
public ObservableCollection<Person> Persons
{
get
{
return this.persons;
}
set
{
this.persons = value;
}
}
我的 DataGrid 是这样的:
<DataGrid Name="Persons"
Grid.Row="1"
Grid.Column="0"
Margin="10"
AutoGenerateColumns="False"
IsReadOnly="True"
ItemsSource="{Binding Path=Persons}">
<DataGrid.Columns>
<DataGridTemplateColumn Width="80">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Width="120"
Binding="{Binding Path=Name}"
Header="Name" />
<DataGridTextColumn Width="120"
Binding="{Binding Path=Address}"
Header="Address" />
</DataGrid.Columns>
</DataGrid>
姓名和地址正确显示,但图像为空... 你知道我做错了什么吗?
提前致谢,祝你有美好的一天
【问题讨论】:
-
使用
<Image Source="{Binding Image}" /> -
@xeraphim,
Image是System.Drawing.Bitmap类型吗?如果是,您可以将其更改为使用System.Windows.Media.Imaging.BitmapImage吗? -
@dkozl 感谢您的提示,我为 Persons 创建了一个 Dto,因为我无法更改原始模型的类型,但它仍然没有显示 :(
-
@dkozl 我错了,它现在可以工作了:D 谢谢!如果您可以回答而不是发表评论,我会将其设置为已接受的答案:) 谢谢!
标签: c# wpf mvvm binding datagrid