Я пытаюсь понять концепцию привязки данных, я узнал, что привязка данных - это способ, которым вы можете связывать элементы интерфейса с объектами, чтобы любое изменение в любом из них повлияло на другое (в случае связыванию два пути), но это не работает в этом простом примере:Data Binding не работает
мой класс:
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" />
с # Код:
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";
}
}
}
Когда я запустил приложение, в TextBlock отображается «Имя человека», но нажатие кнопки changeName не изменяет то, что показано в TextBlock, так что я здесь отсутствует?
реализовать ли ваш personObject INotifyPropertyChanged? – RvdK
Вам не хватает 'INotifyPropertyChanged' [реализация интерфейса] (https://msdn.microsoft.com/en-gb/library/ms229614 (v = vs.110) .aspx) на вашем« объекте ». – Michael
Вы должны использовать интерфейс 'INotifyPropertyChanged'. Проверьте это сообщение, которое содержит полную реализацию интерфейса: http://stackoverflow.com/questions/33691293/toggle-list-box-display-in-wpf –