我创建了一个Tab应用程序,其中包含一个主窗口和相关选项卡,每个选项卡都有一个单独的View-Model。
每个选项卡逐个初始化,一旦应用程序正确打开,我想从第二个选项卡更新一些值,这些更改应反映在第一个选项卡上。
所以我实现了与这些属性相关的INotifyPropertyChanged
事件,但它没有反映在First Tab上。
在更改第二个选项卡中的值时,DataContext中的某些问题似乎未正确更新。
我尝试了什么:
我尝试更新第一个选项卡DataContext,同时在第二个选项卡中更改值(属性的设置器)。我在调试中已经看到该属性已更新,但它没有反映在UI中。
感谢。
//First tab initialization.
public partial class PersonUserControl : UserControl{
/// <summary>
/// Default constructor.
/// </summary>
public PersonUserControl (){
InitializeComponent();
// Allow for UserControl to init successfully within VS Designer.
if ( !DesignerProperties.GetIsInDesignMode(this) ){
DataContext = new PersonViewModel();
}
}
//First tab View- Model: PersonViewModel.cs
public string JoinDate{
get
{
return _joinDate;
}
set
{
if (_joinDate != value)
{
_joinDate = value;
OnPropertyChanged("JoinDate");
}
}
}
//Second tab initialization.
public partial class UpdateInfoControl : UserControl{
/// <summary>
/// Default constructor.
/// </summary>
public UpdateInfoControl()
{
InitializeComponent();
// Allow for UserControl to init successfully within VS Designer.
if ( !DesignerProperties.GetIsInDesignMode(this) )
{
DataContext = new UpdateInfoModel();
}
}
//Second tab View-Model: UpdateInfoModel.cs
public DateTime TimeOfDay{
get
{
return _timeOfDay;
}
set
{
if ( _timeOfDay != value ){
_timeOfDay = value;
OnPropertyChanged("TimeOfDay");
_updateInfoViewModel.JoinDate = timeOfDay .ToString();
}
}
}