Пример #1
0
        public void TaskPropertyTest()
        {
            var type         = GetType();
            var propertyName = new Symbol(nameof(TaskProperty));

            Action action = () => type.GetGetter <string>(propertyName);

            action.Should().Throw <InvalidCastException>();
            action = () => type.GetGetter <Task>(propertyName, true);
            action.Should().Throw <InvalidCastException>();
            action = () => type.GetSetter <string>(propertyName);
            action.Should().Throw <InvalidCastException>();
            _ = type.GetSetter <Task>(propertyName, true); // This should work for setters

            var getter        = type.GetGetter <Task>(propertyName);
            var untypedGetter = type.GetGetter <object>(propertyName, true);
            var setter        = type.GetSetter <Task>(propertyName);
            var untypedSetter = type.GetSetter <object>(propertyName, true);

            if (getter == null || untypedGetter == null || setter == null || untypedSetter == null)
            {
                getter.Should().NotBeNull();
                untypedGetter.Should().NotBeNull();
                setter.Should().NotBeNull();
                untypedSetter.Should().NotBeNull();
                throw new AssertionFailedException(
                          "We shouldn't get here - this throw is solely to suppress later nullability warnings.");
            }

            var falseTask = Task.FromResult(false);
            var trueTask  = Task.FromResult(true);

            TaskProperty = falseTask;
            getter.Invoke(this).Should().BeSameAs(falseTask);
            untypedGetter.Invoke(this).Should().BeSameAs(falseTask);

            TaskProperty = trueTask;
            getter.Invoke(this).Should().BeSameAs(trueTask);
            untypedGetter.Invoke(this).Should().BeSameAs(trueTask);

            setter.Invoke(this, falseTask);
            TaskProperty.Should().BeSameAs(falseTask);
            untypedSetter.Invoke(this, trueTask);
            TaskProperty.Should().BeSameAs(trueTask);
        }
Пример #2
0
 set => SetValue(TaskProperty, value);
Пример #3
0
        private void graphControl1_OnShowProperties(object sender, object[] props)
        {
            this.propertyGrid.SelectedObjects = props;
            return;
            IList<BaseProperty> list = new List<BaseProperty>();
            foreach (object obj in props)
            {
                if (obj is PropertyBag)
                {
                    BaseProperty property = null;
                    if ((obj as PropertyBag).Owner is Shape)
                    {
                        string name = (obj as PropertyBag).Owner.GetType().Name;
                        switch (name)
                        {
                            case "TaskShape":
                                property = new TaskProperty((obj as PropertyBag).Owner as TaskShape);
                                break;
                            case "ImageShape":
                                property = new ImageShapeProperty((obj as PropertyBag).Owner as ImageShape);
                                break;
                            default:
                                property = new BaseProperty((obj as PropertyBag).Owner as Shape);
                                break;
                        }
                        list.Add(property);
                    }
                    else
                    {
                        this.propertyGrid.SelectedObject = obj;
                        return;
                    }

                }
            }
            BaseProperty[] array = new BaseProperty[list.Count];
            list.CopyTo(array, 0);
            this.propertyGrid.SelectedObjects = array;
        }