在使用 VS2012、WPF 4.5 和设计时数据,特别是 DesignInstance 属性时,我只花了几个小时来解决一个问题。
目标:我想在 VS2012 和 Blend 中的 WPF 项目(基于 MVVM)中提供设计时数据支持,但我终生无法让 MVVMLight 方法始终如一地工作。
因此,我尝试使用 Blend 提供的标记扩展,使用对设计时数据的内置支持更改为“仅”。
问题:考虑以下代码:
<Window x:Class="Nova.View.AlertsView"
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:local="clr-namespace:Nova.View"
xmlns:vm="clr-namespace:Nova.ViewModel"
mc:Ignorable="d"
DataContext="{Binding Alerts, Source={StaticResource Locator}}"
d:DataContext="{d:DesignInstance vm:DesignAlertsViewModel, IsDesignTimeCreatable=True}"
... />
VS2012 和 Blend 都报告“名称 DesignAlertsViewModel 不存在于名称空间 clr-namespace:Nova.ViewModel 中”,尽管智能感知可以很好地解决它,并且您已经检查了一千次名称空间和类名称都是正确的。