wpf在设计器模式利用模拟数据展现控件

发布时间 2023-07-09 23:55:20作者: euv

使用Visual Studio 开发WPF应用程序时,控件显示需要的数据如果来路比较“苦难”,比如来自数据库,JSON文件,复杂计算等,这时候,如果想看到控件带有数据的展示效果,需要启动调试,这很麻烦。
我们可以在XAML中使用designtime语法给控件赋予模拟数据MSDN教程,也可以在后台使用csharp代码判断当前是不是设计模式,返回模拟数据。最终效果就是,设计器模式我们能在UI看到显示模拟数据的控件展示效果,而在启动程序后,控件展示的是从数据库、JSON文件等拿到的真实数据。

wpf判断当前是否在设计模式

语法

public bool IsInDesignMode
{
    get=>(bool)DesignerProperties.IsInDesignModeProperty.GetMetadata(typeof(DependencyObject)).DefaultValue;
}

用途

  1. 比如我们现在构建一个用于展示数据的用户控件库,可以在控件的Load事件中,调用IsInDesignMode返回模拟数据,那么当别人使用我们的控件库时,把控件放到XAML中时就能看到展示模拟数据的效果。
  2. 可以在ViewModel中(一般在构造函数中)调用IsInDesignMode,如果true返回模拟数据,如果false返回从数据库读取到的数据,这样当在XAML中为View的DataContext赋值ViewModel,能在View中看到展示模拟数据的控件效果。