示例#1
0
 private void ViewPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (string.Equals(ViewInvoker.Name, e.PropertyName, StringComparison.Ordinal) || string.IsNullOrEmpty(e.PropertyName))
     {
         if (data is INotifyPropertyChanged notify)
         {
             notify.PropertyChanged -= DataPropertyChanged;
             DataInvoker.SetValue(data, ViewInvoker?.GetValue(view));
             notify.PropertyChanged += DataPropertyChanged;
         }
         else
         {
             DataInvoker.SetValue(data, ViewInvoker?.GetValue(view));
         }
     }
 }
示例#2
0
 private void DataPropertyChanged(object sender, PropertyChangedEventArgs e)
 {
     if (ViewInvoker == null)
     {
         throw new InvalidOperationException($"{nameof(ViewInvoker)} is not specified!");
     }
     if (string.Equals(DataInvoker.Name, e.PropertyName, StringComparison.Ordinal) || string.IsNullOrEmpty(e.PropertyName))
     {
         if (view is INotifyPropertyChanged notify)
         {
             notify.PropertyChanged -= ViewPropertyChanged;
             ViewInvoker.SetValue(view, DataInvoker?.GetValue(data));
             notify.PropertyChanged += ViewPropertyChanged;
         }
         else
         {
             ViewInvoker.SetValue(view, DataInvoker?.GetValue(data));
         }
     }
 }