我有两个WPF Textbox
,Textbox1
和Textbox2
。当用户在Texbox2
中输入任何内容时,Textbox1
会发生变化,并且还需要将Textbox2.Text
加载/保存到数据源。我可以将Textbox2.Text
绑定到Textbox1.Text
<TextBox Name="Textbox2" Text="{Binding Text, ElementName=Textbox1}"/>
或数据源
<TextBox Name="Textbox2" Text="{Binding Path="AProperty"}"/>
我怎么能同时拥有两者?
答案 0 :(得分:1)
我假设您在没有事先了解MVVM的情况下使用Binding
。
TextBox1.Text
可以绑定TextProperty1
,TextBox2.Text
可以绑定到 ViewModel 中的TextProperty1
(该类被指定为{{1} }})。
ViewModel实现了INotifyPropertyChanged接口:
DataContext
如您所见,您将在设置public class ViewModel : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
string _TextProperty1;
public string TextProperty1
{
get { return _TextProperty1; }
set
{
if (_TextProperty1 != value)
{
_TextProperty1 = value;
RaisePropertyChanged("TextProperty1");
RaisePropertyChanged("TextProperty2");
}
}
}
string _TextProperty2;
public string TextProperty2
{
get { return _TextProperty2; }
set
{
if (_TextProperty2 != value)
{
_TextProperty2 = value;
RaisePropertyChanged("TextProperty2");
}
}
}
}
时通知这两个属性。