WPF XAML 设计器显示绑定 属性 名称而不是 属性 值
WPF XAML designer showing bound property names instead of property values
我的一个 XAML 文件在 XAML 设计器中显示了一个奇怪的行为(但在运行时没有):
public class MyDesignTimeViewModel
{
public MyDesignTimeViewModel()
{
MyText = "abc";
MyInt = 5;
}
public string MyText { get { ... } }
public int MyInt { get { ... } }
}
然后在XAML:
<UserControl xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
...
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}"
>
<TextBlock Text="{Binding MyText}" />
<TextBlock Text="{Binding MyInt}" />
</UserControl>
在XAML设计器中,两个TextBlock实例显示如下内容:
MyText
0
XAML 设计器显示字符串 属性 的 属性 名称,对于整数 属性,它显示一个 0。
错误window没有错误。此外,它似乎实际上读取了属性,因为如果我将绑定更改为不存在的 属性 名称,内容就会消失。
我重新启动了 Visual Studio 和我的电脑并删除了 .suo
文件。
对此行为有任何解释吗?
原来缺少的是 IsDesignTimeCreatable
属性:
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel, IsDesignTimeCreatable=true}"
有了这个属性,一切都按预期工作。
我 运行 遇到了这个问题,但原因实际上是我没有在 XAML Designer 中启用项目代码。
为了回应 J.G. 的回答,修复是在 XAML 设计器中启用项目代码,该代码在某些时候神秘地被禁用了。
新帐户所以我不能投票或发表评论,我只是不喜欢看到正确答案被否决。
谢谢你最后两个答案。在我的例子中 'Enable Project Code in XAML' 也随机关闭了!我有几个星期没有让设计师提取视图模型代码了。很高兴这已得到修复。所以总而言之,为了让这个工作你需要:
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}"
以及带有蓝色方块和标题 'Enable Project Code in XAML' 的小图标将被打开!
我的一个 XAML 文件在 XAML 设计器中显示了一个奇怪的行为(但在运行时没有):
public class MyDesignTimeViewModel
{
public MyDesignTimeViewModel()
{
MyText = "abc";
MyInt = 5;
}
public string MyText { get { ... } }
public int MyInt { get { ... } }
}
然后在XAML:
<UserControl xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
...
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}"
>
<TextBlock Text="{Binding MyText}" />
<TextBlock Text="{Binding MyInt}" />
</UserControl>
在XAML设计器中,两个TextBlock实例显示如下内容:
MyText
0
XAML 设计器显示字符串 属性 的 属性 名称,对于整数 属性,它显示一个 0。
错误window没有错误。此外,它似乎实际上读取了属性,因为如果我将绑定更改为不存在的 属性 名称,内容就会消失。
我重新启动了 Visual Studio 和我的电脑并删除了 .suo
文件。
对此行为有任何解释吗?
原来缺少的是 IsDesignTimeCreatable
属性:
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel, IsDesignTimeCreatable=true}"
有了这个属性,一切都按预期工作。
我 运行 遇到了这个问题,但原因实际上是我没有在 XAML Designer 中启用项目代码。
为了回应 J.G. 的回答,修复是在 XAML 设计器中启用项目代码,该代码在某些时候神秘地被禁用了。
新帐户所以我不能投票或发表评论,我只是不喜欢看到正确答案被否决。
谢谢你最后两个答案。在我的例子中 'Enable Project Code in XAML' 也随机关闭了!我有几个星期没有让设计师提取视图模型代码了。很高兴这已得到修复。所以总而言之,为了让这个工作你需要:
d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}"
以及带有蓝色方块和标题 'Enable Project Code in XAML' 的小图标将被打开!