【发布时间】:2012-02-08 08:11:17
【问题描述】:
我有一个列表视图,它由 sql 数据库中的值填充。我不想为我正在寻找的每个“x”值保存图像,而是想知道是否有办法将图像放入 x 值的列中。
所以对于某个列中的每个“1”实例,我想显示一个圆圈的图像。对于同一列中“2”的每个实例,我想显示一个正方形。
如果我为每个实例保存了 .jpg 文件,而不是数字,那么数据库会很快因冗余图片而膨胀,所以我想避免添加实际图片。有人知道怎么做吗?
【问题讨论】:
我有一个列表视图,它由 sql 数据库中的值填充。我不想为我正在寻找的每个“x”值保存图像,而是想知道是否有办法将图像放入 x 值的列中。
所以对于某个列中的每个“1”实例,我想显示一个圆圈的图像。对于同一列中“2”的每个实例,我想显示一个正方形。
如果我为每个实例保存了 .jpg 文件,而不是数字,那么数据库会很快因冗余图片而膨胀,所以我想避免添加实际图片。有人知道怎么做吗?
【问题讨论】:
有几种方法可以实现这一点,如果您使用ListBox(这可能是您想要的,而不是ListView),那么您可以创建一个自定义DataTemplate。
您的ListBox 将绑定到一组项目,每个项目都是一个自定义类型,代表从您的数据库填充的模型。
例如,在此模型上可以是Image 属性,它可以是相应图像的路径。在这个Image 属性的getter 中,您可以根据整数值(这是模型上的另一个属性)返回适当的路径。
在您的ListBox DataTemplate 中,您可以使用Image 控件,其Source 属性绑定到基础数据对象的Image 属性。
如果你想使用一个使用GridView的ListView,那么你可以将一个列的CellTemplate设置为DataTemplate,原理是一样的。这被描述为here。
【讨论】: