繁体   English   中英

Visual Studio和条件符号

[英]Visual studio and conditional symbols

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:是一个DesignTime接口

您可以使用DesignerProperties.GetIsInDesignMode方法。

_viewModel = new OrdersViewModel();
if (DesignerProperties.GetIsInDesignMode(new DependencyObject()))
{
    _viewModel.Orders = new ObservableCollection<OrderModel>()
    {
        new OrderModel(){OrderId = "0e2fa124"},
        new OrderModel(){OrderId = "5wqsdgew"},
    };
};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM