设计数据上下文没有按预期工作
本文关键字:工作 数据 上下文 | 更新日期: 2023-09-27 18:18:01
在一个新的WP8.1项目中,我创建了一个ViewModel并将其用于设计数据。我的绑定没有显示我期望的值:
namespace App1
{
public class ViewModel
{
public ViewModel()
{
this.Name = "hello world";
}
public string Name
{
get; set;
}
}
}
<Page
x:Class="App1.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:App1"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d"
d:DataContext="{d:DesignInstance local:ViewModel}">
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<TextBlock Text="{Binding Name}" />
</Grid>
</Page>
在Blend的设计界面或者Visual Studio的设计器中,我看到的文字是"Name"而不是"hello world"。
Page的设计时DataContext应该是我的ViewModel的一个实例,{Binding Name}应该是我继承的DataContext的Name属性的值。我遗漏了什么?
默认情况下,DesignInstance
试图模拟视图模型中的数据。如果您想使用实际数据,您需要设置IsDesignTimeCreatable
标志:
d:DataContext="{d:DesignInstance local:ViewModel, IsDesignTimeCreatable=True}"
事实证明,您需要构建非ARM才能正常工作。
问题是我正在使用ARM配置(当我想部署到Phone时切换到ARM),并且我已经更改了x86配置来构建ARM。因此,无论我选择的是ARM还是x86配置,它都会构建ARM,因此它不会工作。