视觉工作室和条件符号
本文关键字:符号 条件 工作室 视觉 | 更新日期: 2023-09-27 18:25:58
Visual Studio 2012 是否支持设计时的条件符号?
我的问题示例:在具有 MVVM 模式的 WPF 应用程序中,我直接创建了 ViewModel 的实例:
_viewModel = new OrdersViewModel();
但我想在设计时使用条件符号,如下所示:
_viewModel = new OrdersViewModel
{
Orders = new ObservableCollection<OrderModel>()
{
new OrderModel(){OrderId = "0e2fa124"},
new OrderModel(){OrderId = "5wqsdgew"},
}
};
可以肯定的是,条件编译符号不起作用。
您应该在视图中使用设计时 DataContext。
像这样:
<Window x:Class="TestForDesignTimeData.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:MyNamespace="clr-namespace:Myproject.MyNamespace"
mc:Ignorable="d"
Title="MainWindow" >
<StackPanel d:DataContext="{d:DesignInstance MyNamespace:OrdersViewModel}"/>
另请记住,您应该派生 OrderViewModel 类,并使用构造函数创建一个类来填充这些属性。因此,您将在设计时使用一个类,在现实世界中使用类似的类。d:是一个设计时接口
您可以使用
DesignerProperties.GetIsInDesignMode
方法。
_viewModel = new OrdersViewModel();
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
{
_viewModel.Orders = new ObservableCollection<OrderModel>()
{
new OrderModel(){OrderId = "0e2fa124"},
new OrderModel(){OrderId = "5wqsdgew"},
};
};