什么时候使用CanFreeze?

时间:2010-07-21 16:55:49

标签: c# wpf

在冻结对象之前是否有必要始终检查CanFreeze

如果我看PresentationOptions:Freeze在标记中使用,那就没有完成。因此,我不认为,必须在everey对象创建之前调用CanFreeze。

但是什么时候使用CanFreeze?

1 个答案:

答案 0 :(得分:2)

您不必致电CanFreeze,但如果您没有,并且您的对象可冻结,则会抛出InvalidOperationException(请参阅"remarks"冻结部分())。因此,CanFreeze是一个允许您调用Freeze()而不会有异常风险的选项。

有几种情况下调用Freeze()会导致异常。 直接引用Freeze()参考:

  

您无法冻结Freezable对象   如果出现以下任何一种情况   这个对象是真的:

     
      
  • 它有动画或数据绑定   属性。

  •   
  • 它具有由a设置的属性   动态资源。欲获得更多信息   关于动态资源,请参阅   资源概述。

  •   
  • 它包含Freezable子对象   不能冻结。

  •