C# 数据绑定不起作用

C# 数据绑定不起作用,c#,windows,xaml,win-universal-app,windows-10-universal,C#,Windows,Xaml,Win Universal App,Windows 10 Universal,我试图理解数据绑定的概念,我了解到数据绑定是一种可以将UI元素绑定到对象的方式,以便其中一个元素的任何更改都会影响另一个元素(在双向绑定的情况下),但在这个简单的示例中,这不起作用: 我的班级: namespace dataBinding.Models { public class person { public string name { get; set; } public override string ToString() { return th

我试图理解数据绑定的概念,我了解到数据绑定是一种可以将UI元素绑定到对象的方式,以便其中一个元素的任何更改都会影响另一个元素(在双向绑定的情况下),但在这个简单的示例中,这不起作用:

我的班级:

namespace dataBinding.Models
{
public class person
{
    public string name { get; set; }

    public override string ToString()
    {
        return this.name;
    }
}
}
XAML:

xmlns:models="using:dataBinding.Models"
<Page.DataContext>
    <models:person x:Name="personObject" name="Person's Name"/>
</Page.DataContext>

    <TextBlock VerticalAlignment="Center" HorizontalAlignment="Right" 
               Text="{Binding name, Mode=TwoWay}" />

    <Button Name="changeNameButton"
            VerticalAlignment="Center" 
            HorizontalAlignment="Left"
            Content="Change Name" />

当我运行应用程序时,文本块显示“人名”,但单击changeName按钮不会更改文本块中显示的内容,所以,我在这里缺少什么

您缺少的
INotifyPropertyChanged
接口实现。您的XAML不知道它已被更改

易于修复,使用
https://github.com/Fody/PropertyChanged
它将添加代码,通知所有人该属性已更改

[ImplementPropertyChanged]
public class person
{
    public string name { get; set; }

    public override string ToString()
    {
        return this.name;
    }
}

您缺少的
INotifyPropertyChanged
接口实现。您的XAML不知道它已被更改

易于修复,使用
https://github.com/Fody/PropertyChanged
它将添加代码,通知所有人该属性已更改

[ImplementPropertyChanged]
public class person
{
    public string name { get; set; }

    public override string ToString()
    {
        return this.name;
    }
}

您的personObject是否实现了INotifyPropertyChanged?您的“对象”缺少
INotifyPropertyChanged
。您应该使用
INotifyPropertyChanged
接口。检查这篇包含接口完整实现的帖子:谢谢你们,你们是awosome:)你们的personObject实现了INotifyPropertyChanged吗?你们的“对象”缺少了
INotifyPropertyChanged
。你们应该使用
INotifyPropertyChanged
接口。查看这篇包含完整界面实现的帖子:谢谢你们,你们是awosome:)