C# 将文本框字段绑定到对象
嘿,如果您有一个对象,例如C# 将文本框字段绑定到对象,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,嘿,如果您有一个对象,例如Person,其属性为FirstName,LastName,生日。你需要把每一处房产分开吗 如ViewModel.cs中所示: private string _FirstName; public string FirstName { get { return _FirstName; } set { _FirstName = value; RaisePropertyChanged("FirstName")
Person
,其属性为FirstName
,LastName
,生日
。你需要把每一处房产分开吗
如ViewModel.cs中所示:
private string _FirstName;
public string FirstName
{
get { return _FirstName; }
set
{
_FirstName = value;
RaisePropertyChanged("FirstName");
}
}
这在View.xaml中
<TextBox Text="{Binding FirstName, Mode=TwoWay}" />
我试过这个:
<TextBox Text="{Binding Person.FirstName, Mode=TwoWay}" />
这样我就不需要输入每个属性。这可能吗?具体是怎样的呢?这里有一个模式可以遵循: 型号
public class Notifier : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class Person : Notifier
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
RaisePropertyChanged(); //No need to pass "FirstName".
}
}
}
public class PersonViewModel : Notifier
{
private Person _person;
public Person Person
{
get { return _person; }
set
{
_person= value;
RaisePropertyChanged(); //No need to pass "Person".
}
}
}
视图模型
public class Notifier : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged([CallerMemberName] string propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
public class Person : Notifier
{
private string _firstName;
public string FirstName
{
get { return _firstName; }
set
{
_firstName = value;
RaisePropertyChanged(); //No need to pass "FirstName".
}
}
}
public class PersonViewModel : Notifier
{
private Person _person;
public Person Person
{
get { return _person; }
set
{
_person= value;
RaisePropertyChanged(); //No need to pass "Person".
}
}
}
视图(此视图的数据上下文
假定为PersonViewModel
类的实例)
你到底想问什么?@HosseinNarimaniRad如果可以只绑定到Person,然后绑定到Person的属性。你需要绑定每个属性。XAML不能变魔术(除非您正在寻找一个类似属性网格的控件来“转储”对象上的每个公共属性您可以将视图的DataContext设置为Person,然后无需说Person.FirstName
只需说FirstName
。是否查找此项?您需要为任何在建立XAML绑定后可能更改的属性引发属性更改事件。首先,请编辑您的问题如果有一个完整的例子,那么就值得讨论必要的更改。这个讨论完全是假设性的。