Exemple #1
0
        public HelloWorldViewModel()
        {
            firstName = Factory.Backing(nameof(FirstName), "Anton", NotNullOrWhitespace.Then(NotEqual("Foo")));

            lastName = Factory.Backing(
                nameof(LastName),
                "Tcholakov",
                NotNullOrWhitespace.Then(NotEqual("Bar")).Then(x => x.Length < 10, "Length cannot exceed 10 characters"));

            sayHello = Factory.CommandAsyncChecked(
                Greet,
                () => this.IsValid && !this.OperationExecuting,
                cts.Token,
                exn => MessageBox.Show("Sorry I was too slow :-(."),
                nameof(IsValid),
                nameof(OperationExecuting));

            cancelCommand = Factory.CommandSyncChecked(
                () => this.cts?.Cancel(),
                () => this.OperationExecuting,
                nameof(OperationExecuting));

            DependencyTracker.AddPropertyDependencies(nameof(ReadyToGreet), nameof(OperationExecuting));
            DependencyTracker.AddPropertyDependencies(nameof(FullName), nameof(FirstName), nameof(LastName));
            DependencyTracker.AddPropertyDependencies(nameof(Greeting), nameof(FullName));
        }