1

问候,

当我创建 WPF 应用程序时,我显然使用了很多绑定。但是我发现通常我不使用 FallbackValue 属性。

我的问题是:如果应该设置 FallbackValue 事件,我是否应该始终设置: FallbackValue="" ?

使用/不使用 FallbackValue 对内存/性能/其他有什么影响?

4

2 回答 2

2

你几乎不应该使用 FallbackValue。

如果您已正确设置所有内容,则数据绑定永远不会失败,因此永远不会看到 fallbackvalue。

在这里遇到的最大性能问题是数据绑定失败的成本(这些通常涉及异常并且比成功的绑定成本高得多)。使用 FallbackValue 可以隐藏此类性能问题。因此,我认为使用 FallbackValue 通常会使性能变差(但一如既往,这取决于)

于 2011-03-22T11:09:42.560 回答
1

我个人建议提供FallbackValue不依赖负载来提供功能的地方,除非确定负载永远不会失败。加载失败有多种方式,如果您的图像等并没有真正影响功能,那么您的用户会因为您的公司的徽标由于文件损坏或其他原因而无法加载程序而使程序失败...

但是,如果您的功能需要资源,则不应提供回退值,而应捕获异常并处理它。

FallbackValue也可用于优先图像源。在这里,您在其他地方(可能通过 Internet)触发资源的异步加载,并且在加载完成之前,您的备用值将可用。例如,您可以使用后备值在图像返回之前提供占位符图像。如果图像加载(从 Internet 上)失败,你有一个占位符而不是空白空间 - 有时由于屏幕元素大小问题而不能接受空白空间(没有大小时东西会消失) .

至于性能方面的考虑,我没有感觉到由于后备资源而导致的性能下降太多。但是,请理解,如果资源是异步加载的,那么您实际上是在加载两个资源而不是一个 - 但回退通常是本地资源,因此对性能的影响应该是最小的。

于 2011-03-22T11:20:56.880 回答