@@ -273,6 +273,21 @@ public void Test_AlsoNotifyChangeFor()
273
273
CollectionAssert . AreEqual ( new [ ] { nameof ( model . Surname ) , nameof ( model . FullName ) , nameof ( model . Alias ) } , propertyNames ) ;
274
274
}
275
275
276
+ [ TestMethod ]
277
+ public void Test_OnPropertyChangingAndChangedPartialMethods ( )
278
+ {
279
+ ViewModelWithImplementedUpdateMethods model = new ( ) ;
280
+
281
+ model . Name = nameof ( Test_OnPropertyChangingAndChangedPartialMethods ) ;
282
+
283
+ Assert . AreEqual ( nameof ( Test_OnPropertyChangingAndChangedPartialMethods ) , model . NameChangingValue ) ;
284
+ Assert . AreEqual ( nameof ( Test_OnPropertyChangingAndChangedPartialMethods ) , model . NameChangedValue ) ;
285
+
286
+ model . Number = 99 ;
287
+
288
+ Assert . AreEqual ( 99 , model . NumberChangedValue ) ;
289
+ }
290
+
276
291
public partial class SampleModel : ObservableObject
277
292
{
278
293
/// <summary>
@@ -398,4 +413,34 @@ public partial class ViewModelWithValidatableGeneratedProperties : ObservableVal
398
413
399
414
public void RunValidation ( ) => ValidateAllProperties ( ) ;
400
415
}
416
+
417
+ public partial class ViewModelWithImplementedUpdateMethods : ObservableObject
418
+ {
419
+ [ ObservableProperty ]
420
+ public string ? name = "Bob" ;
421
+
422
+ [ ObservableProperty ]
423
+ public int number = 42 ;
424
+
425
+ public string ? NameChangingValue { get ; private set ; }
426
+
427
+ public string ? NameChangedValue { get ; private set ; }
428
+
429
+ public int NumberChangedValue { get ; private set ; }
430
+
431
+ partial void OnNameChanging ( string ? value )
432
+ {
433
+ NameChangingValue = value ;
434
+ }
435
+
436
+ partial void OnNameChanged ( string ? value )
437
+ {
438
+ NameChangedValue = value ;
439
+ }
440
+
441
+ partial void OnNumberChanged ( int value )
442
+ {
443
+ NumberChangedValue = value ;
444
+ }
445
+ }
401
446
}
0 commit comments