c# - WPF 资源未加载?

标签 c# wpf xaml

好吧,我有一些似乎不想工作的 XAML。这意味着显示“MainWindowViewModel.Property”的值,但它并没有这样做。

先上代码:

主窗口.xaml:

<Window x:Class="MyNamespace.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:MyNamespace"
        mc:Ignorable="d"
        Title="MainWindow" Height="350" Width="525">
    <Window.Resources>
        <local:MainWindowViewModel x:Key="ViewModel"/>
    </Window.Resources>
    <Grid>
        <Label Content="{Binding Property, Source={StaticResource ViewModel}}"/>
    </Grid>
</Window>

MainWindow.xaml.cs:

namespace MyNamespace
{
    public partial class MainWindow
    {
        public MainWindow()
        {
            InitializeComponent();
        }
    }
}

MainWindowViewModel.cs

namespace MyNamespace
{
    public class MainWindowViewModel
    {
        public string Property = "test";
    }
}

这对我来说似乎很正确,但它在运行时不起作用,设计者给了我一个神秘的错误:

PropertyPath
 Property expected

围绕绑定(bind)中的“Property”。知道为什么会这样吗?

谢谢!

最佳答案

这里的问题是 MainWindowViewModelProperty 成员是 field而不是 property , 而 WPF 只支持绑定(bind)到属性。所以你的 View 模型应该至少看起来像这样:

namespace MyNamespace
{
    public class MainWindowViewModel
    {
        public MainWindowViewModel()
        {
            Property = "test";
        }

        public string Property { get; set; }
    }
}

如果您计划在 View 模型的整个生命周期中更改该值,您还可以考虑实现 INotifyPropertyChanged .

关于c# - WPF 资源未加载?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34503603/

相关文章:

wpf - 使用 WPF 和数据绑定(bind)时如何在 Visual Studio 11 上获得测试数据?

c# - TreeView.ItemContainerGenerator.ContainerFromItem 为非根项返回 null。解决方法?

c# - “标准化”概率数组

javascript - 使用更改的 CSS 光标属性在不移动鼠标的情况下更新鼠标光标

c# - 绑定(bind)到字典 - 键为 ' ( '

windows - Xaml + Directx Fullscene Windows 10 移动版

c# - 持久对象引用未设置错误 [无相关源行]

c# - System.Text.Json 将空字符串全局序列化为空字符串

wpf - 嵌套数据上下文

c# - WPF/C# 将自定义对象列表数据绑定(bind)到 ListBox?