WPF XAML 设计器显示绑定(bind)的属性名称而不是属性值

标签 wpf xaml xaml-designer

我的一个 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 设计器显示字符串属性的属性名称,对于 int 属性,它显示 0。

错误窗口中没有错误。此外,它似乎实际上读取了属性,因为如果我将绑定(bind)更改为不存在的属性名称,内容就会消失。

我重新启动了 Visual Studio 和我的 PC 并删除了 .suo文件。

对这种行为有什么解释吗?

最佳答案

谢谢你最后两个答案。就我而言,“在 XAML 中启用项目代码”也已随机关闭!我有几个星期没有让设计师拉取 View 模型代码。非常高兴这已得到修复。所以总而言之,要让这个工作你需要:

d:DataContext="{d:DesignInstance vm:MyDesignTimeViewModel}"

以及带有蓝色方 block 和标题的小图标 '在 XAML 中启用项目代码' 开启!

关于WPF XAML 设计器显示绑定(bind)的属性名称而不是属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37947002/

相关文章:

c# - WPF 中的分辨率独立性如何工作?

c# - 对未知列使用特定的 DataTemplate

c# - [WPF]如何在 Canvas 上绘制网格?

c# - WPF 触发按钮可以在 ItemsControl 之外从 ItemsControl 执行

xaml - 在 ItemTemplate 上设置属性

XAML 设计器 System.Runtime.Remoting.RemotingException

visual-studio-2015 - 如何调试 XAML 设计器问题?

visual-studio-2012 - 在 Visual Studio 2012 中重新启动 (XAML-)Designer 的更好方法

c# - 自定义 TabItem 数据模板

WPF - 使两个扩展器填充可用空间,具体取决于显示的是哪一个