数据绑定不起作用
本文关键字:不起作用 数据绑定 | 更新日期: 2023-09-27 18:32:42
我试图理解数据绑定的概念,我了解到数据绑定是您可以将 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" />
C# 代码:
namespace dataBinding
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
changeNameButton.Click += ChangeNameButton_Click;
}
private void ChangeNameButton_Click(object sender, RoutedEventArgs e)
{
personObject.name = "New Name";
}
}
}
当我运行应用程序时,文本块显示"人名",但单击更改名称按钮不会更改文本块中显示的内容,那么,我在这里缺少什么?
您缺少INotifyPropertyChanged
接口实现。你的 XAML 不知道它已被更改。
易于修复,使用https://github.com/Fody/PropertyChanged
它将添加代码以通知所有人属性已更改。
[ImplementPropertyChanged]
public class person
{
public string name { get; set; }
public override string ToString()
{
return this.name;
}
}