大家好,
当我创建WPF应用程序时,我显然使用了很多绑定。然而,我发现我通常不使用FallbackValue属性。
我的问题是:如果事件应该是: FallbackValue="“,我应该总是设置回退值事件吗?
使用/不使用FallbackValue对内存/性能/其他方面有什么影响?
发布于 2011-03-22 19:20:57
我个人推荐在不依赖负载来提供功能的情况下提供FallbackValue,除非您确定负载永远不会失败。加载失败的方式有很多种,如果你的图像等并不真正影响功能,那么仅仅因为你公司的徽标由于损坏的文件或其他原因而无法加载对用户来说是很苛刻的。
但是,如果您的功能需要资源,则不应提供回退值,而应捕获异常并处理它。
FallbackValue也可用于优先图像源。在这里,您在其他地方(可能通过Internet)启动资源的异步加载,在加载完成之前,您的回退值将可用。例如,可以使用回退值在图像返回之前提供占位符图像。如果图像加载失败(从Internet上),您就有了一个占位符,而不是空白--有时由于屏幕元素大小问题,空白是不可接受的(如果没有大小,就会消失)。
至于性能方面的考虑,我没有感觉到由于后备资源而导致的性能明显下降。但是,请理解,如果资源是异步加载的,那么您实际上加载了两个资源,而不是一个--但是回退通常是一个本地资源,因此对性能的影响应该是最小的。
发布于 2011-03-22 19:09:43
您几乎不应该使用FallbackValue。
如果您已经正确地设置了所有内容,那么数据绑定应该永远不会失败,因此应该永远不会看到回退值。
在这里,最大的性能问题是失败的数据绑定的成本(这些通常涉及异常,并且比成功的绑定成本高得多)。使用FallbackValue可以隐藏这样的性能问题。因此,我认为使用FallbackValue通常会使性能变得更差(但一如既往,这取决于)
https://stackoverflow.com/questions/5390198
复制相似问题