使用Visual Studio 开发WPF应用程序时,控件显示需要的数据如果来路比较“苦难”,比如来自数据库,JSON文件,复杂计算等,这时候,如果想看到控件带有数据的展示效果,需要启动调试,这很麻烦。
我们可以在XAML中使用designtime语法给控件赋予模拟数据MSDN教程,也可以在后台使用csharp代码判断当前是不是设计模式,返回模拟数据。最终效果就是,设计器模式我们能在UI看到显示模拟数据的控件展示效果,而在启动程序后,控件展示的是从数据库、JSON文件等拿到的真实数据。
wpf判断当前是否在设计模式 |
语法
public bool IsInDesignMode
{
get=>(bool)DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue;
}
用途
- 比如我们现在构建一个用于展示数据的用户控件库,可以在控件的Load事件中,调用IsInDesignMode返回模拟数据,那么当别人使用我们的控件库时,把控件放到XAML中时就能看到展示模拟数据的效果。
- 可以在ViewModel中(一般在构造函数中)调用IsInDesignMode,如果true返回模拟数据,如果false返回从数据库读取到的数据,这样当在XAML中为View的DataContext赋值ViewModel,能在View中看到展示模拟数据的控件效果。