【发布时间】:2012-10-09 00:27:26
【问题描述】:
我遇到了 WPF C# 中的列表视图问题。我有一个名为 FaultRecords 的类,它包含一个整数字段、一个位图图像和一个字符串。当我运行代码时,整数和字符串看起来很好,但图像没有。在图像应该是的列中,我只是获取类型的路径 - “system.windows.media.imaging.bitmapimage”。它快把我逼疯了.....
这是我的代码
public void RecordNewFault()
{
FaultRecords myRecord = new FaultRecords(FaultIndex, PublicVars.SrcBmp, "Hi There!");
lstvFaults.Items.Add(myRecord);
}
public class FaultRecords
{
private int _faultNumber;
public int FaultNumber
{
get { return _faultNumber; }
set { _faultNumber = value; }
}
public BitmapImage _faultImage;
public BitmapImage FaultImage
{
get { return _faultImage; }
set { _faultImage = value; }
}
private string _faultDescription;
public string FaultDescription
{
get { return _faultDescription; }
set { _faultDescription = value; }
}
public FaultRecords(int faultNumber, BitmapImage faultImage, string faultDescription)
{
FaultDescription = faultDescription;
FaultNumber = faultNumber;
FaultImage = faultImage;
}
}
XAML:
<ListView Height="412" HorizontalAlignment="Left" Margin="312,49,0,0" Name="lstvFaults" VerticalAlignment="Top" Width="636" ItemsSource="{Binding}" FontSize="12">
<ListView.View>
<GridView>
<GridViewColumn
DisplayMemberBinding="{Binding Path=FaultNumber}"
Header="Fault No." Width="50"/>
<GridViewColumn
DisplayMemberBinding="{Binding Path=FaultImage}"
Header="Photo" Width="150"/>
<GridViewColumn
DisplayMemberBinding="{Binding Path=FaultDescription}"
Header="Fault Description" Width="300"/>
</GridView>
</ListView.View>
如果我只是自己将位图写入列表视图(并删除 XAML 绑定)-lstvFaults.Items.Add(PublicVars.SrcBmp); 它工作正常。
【问题讨论】:
-
您必须使用将图像绑定到 Image 对象的自定义模板覆盖 ListView ItemTemplate。
-
@Blam 我以为我已经让它工作了,但可惜我没有。我现在正在使用一个类来绑定到我的列表视图,这很好用。但是它不会在列表视图中显示图像,而是显示类型。
-
我在说你的其他问题。