更新的值不会反映在WPF中的GUI中

时间:2018-05-14 07:21:55

标签: c# wpf

我创建了一个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();
        }

     }
}

0 个答案:

没有答案