WPF中利用ListView.View中的GridView怎么显示图片?

我的列是这样定义的
<GridView.Columns>
<GridViewColumn Width="100" Header="学号" DisplayMemberBinding="{Binding Path=StuNumber}"/>
<GridViewColumn Width="100" Header="图片" DisplayMemberBinding="{Binding Path=StuPhoto}"/>
</GridView.Columns>
我看了下,GridViewColumn是一个集合ObservableCollection<GridViewColumn>,所以应该是无法直接显示图片的,包括
<GridViewColumn Width="100" DisplayMemberBinding="{Binding Path=StuPhoto}">
<DataTemplate>
<Image Source={Binding}...............................
也不行。
请问还有什么办法吗?
如下方法可以,但是没有列的标头,我想要列的标头又要怎么做呢?
<!--<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition MinWidth="100"></ColumnDefinition>
<ColumnDefinition MinWidth="100"></ColumnDefinition>
<ColumnDefinition MinWidth="100"></ColumnDefinition>
<ColumnDefinition MinWidth="100"></ColumnDefinition>
<ColumnDefinition MinWidth="100"></ColumnDefinition>
</Grid.ColumnDefinitions>

<TextBlock Text="{Binding StuNumber}" Grid.Column="0"></TextBlock>
<TextBlock Text="{Binding StuName}" Grid.Column="1"></TextBlock>
<TextBlock Text="{Binding StuMajor}" Grid.Column="2"></TextBlock>
<TextBlock Text="{Binding FAdministrator}" Grid.Column="3"></TextBlock>
<Image Source="{Binding StuPhoto}" Width="100" Height="100" Grid.Column="4"></Image>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>-->

我觉得会不会是你图片Path问题,还是啥问题,我给你看下我写的Demo
前台:
<Grid x:Name="bootGrid">
<ListView x:Name="listview">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn x:Name="gvc">
<GridViewColumn.Header>
<TextBlock>图片列Title</TextBlock>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<DataTemplate>
<Image Source="{Binding ImgPath}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
</Grid>
后台:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();

listview.ItemsSource = new List<TestDemo>()
{
new TestDemo(){ ImgPath = "\\Images\\shafa.jpg"}
};
}
}

public class TestDemo
{
public string ImgPath { get; set; }
}追问

我的图片是从数据库中读出来的二进制数据呢

追答

http://www.silverlightchina.net/html/tips/2012/1111/20088.html 你参考下这个吧

追问

我做了一个Converter,不过最终显示的是Byte[] array,感觉只是简单的把二进制数据ToString()而已,可能是GridViewColumn的类型问题吧。

追答

你到Converter里下个断点,返回的应该是BitmapImage类型的。如果步骤正确,图片显示就不会有问题。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-04
你可以用 Blend 把默认样式弄来了 找到列头的样式 加到 你这个DataTemplate中