将 ViewModel 附加到 View 相当方便
d:DataContext="{d:DesignInstance ViewModel}"
,但是在这种情况下, View 设计器开始创建 ViewModel 的实例,并因异常而导致自身崩溃。
例如,我在 ViewModel 中有一个命令,其可用性取决于从数据库加载的统计信息。可视化设计器无法加载统计信息,并且统计信息仍为 null
,因此该命令会引发异常并且设计器崩溃。
有办法解决这个问题,还是我必须删除与 ViewModel 的绑定(bind)?
最佳答案
除非您在 DesignInstance 标记中设置 IsDesignTimeCreatable
,否则它实际上不会通过其构造函数实例化数据上下文类。它只会创建一个具有相同“数据形状”的实例。此人造数据形状的默认内容可以包含空值,因此您需要修复的地方是使用数据上下文的类,这样,如果数据未初始化,它们就不会导致设计器崩溃。
关于wpf - 如何防止 d :DataContext binding 引起的设计时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11138209/