WPF动态映像以编程方式加载到ResourceDictionary中

时间:2010-08-06 07:58:59

标签: c# wpf resourcedictionary

早上的人,

当我偶然发现SO上的建议通过BitmapImages将所有图像加载到资源字典中,然后引用它们而不是每次加载图像时,我一直在尝试删除我的应用程序的一些处理。我的问题是我需要以编程方式完成所有操作,所以:

<BitmapImage x:Key="MyImageSource" UriSource="../Media/Image.png" />

已成为:

BitmapImage bI = new BitmapImage();
Uri imgUri = new Uri(fI.FullName, UriKind.RelativeOrAbsolute);
bI.UriSource = imgUri;
DataTemplateKey dTK = new DataTemplateKey(typeof(BitmapImage));
imageDictionary.Add(dTK, bI);

我认为应该可行,但由于基于数据库内容加载图像而循环,我立即在第二次循环中获得了一个已经添加的密钥错误。有没有办法创建一个我可以自己命名的datatemplatekey而不是基于类型?

谢谢, 贝基

1 个答案:

答案 0 :(得分:1)

无法向datatemplate添加密钥,但您可以通过创建DataTemplateSelector来解决问题。在下面的链接中,您可以找到有关如何执行此操作的非常好的信息:

http://www.switchonthecode.com/tutorials/wpf-tutorial-how-to-use-a-datatemplateselector