public void OnStructChangedTest() { bool isCalled = false; var factory = new PropertyFactory(); var prop = new StructProperty(typeof(MyStruct), factory); var vm = new StructViewModel(prop, new ViewModelFactory(factory, false)); vm.OnChanged.Subscribe(x => isCalled = true); var memberY = vm.Members.OfType <IntViewModel>() .Where(x => x.Property.PropertyInfo.Name == nameof(MyStruct.Y)) .First(); memberY.IntValue.Value = 99; isCalled.IsTrue(); isCalled = false; var memberZ = vm.Members.OfType <IntViewModel>() .Where(x => x.Property.PropertyInfo.Name == nameof(MyStruct.Y)) .First(); memberZ.IntValue.Value = 81; isCalled.IsTrue(); }
public void StructPropagateTest() { bool isCalled = false; var modelFactory = new PropertyFactory(); var prop = new StructProperty(typeof(Toriel), modelFactory); var vm = new StructViewModel(prop, new ViewModelFactory(modelFactory)); vm.OnChanged.Subscribe(x => isCalled = true); var memberSans = (StructProperty)prop.Members.First(x => x.PropertyInfo.Name == nameof(Toriel.Sans)); var memberPapyrus = (StructProperty)memberSans.Members.First(x => x.PropertyInfo.Name == nameof(Sans.Papyrus)); var memberX = (IntProperty)memberPapyrus.Members.First(x => x.PropertyInfo.Name == nameof(Papyrus.X)); memberX.IntValue.Value = 999; isCalled.IsTrue(); }
public Struct() { InitializeComponent(); DataContext = new StructViewModel(); }