У меня есть класс с именем Data
с некоторыми открытыми членами: Name
, Age
, Address
.
У меня также есть окно с текстовыми полями Name
, Age
, Address
.
Объект Data
может измениться в любое время.
Как я могу привязать объект Data
к текстовым полям и следить за изменениями объекта?
Я знаю, что есть INotifyPropertyChanged
и "свойства-зависимости", но я не знаю, как их использовать.
Редактировать
public class MyData : INotifyPropertyChanged
{
private string _name;
public string Name
{
get
{
return _name;
}
set
{
if (_name != value)
{
_name = value;
OnPropertyChnged("Name");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
ProppertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(name));
}
}
XAML код:
xmlns:myApp="clr-namespace:MyApp"
<Window.Resources><myApp:MyData x:key = data/></WindowResources>
<TextBox><TextBox.Text><Binding Source="{StaticResource data}" Path="Name" UpdateSourceTrigger="PropertyChanged"/></TextBox.Text></TextBox>
class OtherClass
{
private MyData data;
//the window that have the binding textbox
private MyWindow window;
public OtherClass()
{
data = new MyData();
data.Name = "new name"
window = new MyWindow();
window.show();
}
}