/// <summary>
        /// Set property value and notify dependend property changes
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <typeparam name="U"></typeparam>
        /// <param name="value"></param>
        /// <param name="newvalue"></param>
        /// <param name="name"></param>
        /// <param name="depend1"></param>
        /// <param name="getter1"></param>
        /// <returns></returns>
        protected virtual bool SetPropertyValue <T, U>(ref T value, T newvalue, string name, string depend1, Func <U> getter1)
        {
            // must have changed
            if (Object.Equals(value, newvalue))
            {
                return(false);
            }

            // create event arguments
            var args1 = new PropertyValueChangingEventArgs(name, value, newvalue);
            var args2 = new PropertyValueChangedEventArgs(name, value, newvalue);

            // signal property change
            OnPropertyChange(name, value, newvalue);

            // get old value
            U oldvalue1 = getter1();

            // signal about to change
            OnPropertyChanging(this, args1);
            value = newvalue;
            OnPropertyChanged(this, args2);

            // feedback dependent property
            SetPropertyValue(oldvalue1, getter1(), depend1, null);

            // return OK
            return(true);
        }
Beispiel #2
0
        private void advPropertyGrid1_PropertyValueChanging(object sender, PropertyValueChangingEventArgs e)
        {
            //var item = GetObjAndField(e.PropertyPath);
            //var obj= item.Item1;
            //var propertyName = item.Item2;
            if (e.PropertyName.EqualIgnoreCase("ModularDevices"))
            {
                var ModularDeviceID = ModularDevice.FindAllByName(e.NewValue.ToString())[0].ID;
                selectObj.Item1.SetItem("ModularDeviceID", ModularDeviceID);
            }
            else if (e.PropertyName.EqualIgnoreCase("Sensors"))
            {
                var SensorId = Sensor.FindAllByName("name", e.NewValue, null, 0, 0)[0].ID;
                selectObj.Item1.SetItem("SensorId", SensorId);
            }
            else if (e.PropertyName.EqualIgnoreCase("ControlJobTypes"))
            {
                var ControlJobTypeId = ControlJobType.FindAllByName("name", e.NewValue, null, 0, 0)[0].Id;
                selectObj.Item1.SetItem("ControlJobTypeId", ControlJobTypeId);
            }
            else if (e.PropertyName.EqualIgnoreCase("RelayTypes"))
            {
                var RelayTypeId = RelayType.FindAllByName("name", e.NewValue, null, 0, 0)[0].Id;
                selectObj.Item1.SetItem("RelayTypeId", RelayTypeId);
            }
            else if (e.PropertyName.EqualIgnoreCase("DeviceTypes"))
            {
                var DeviceTypeSerialnum = DeviceType.FindAllByName("name", e.NewValue, null, 0, 0)[0].Serialnum;
                selectObj.Item1.SetItem("DeviceTypeSerialnum", DeviceTypeSerialnum);
            }

            else if (e.PropertyName.EqualIgnoreCase("ShowDeviceTypes"))
            {
                var ShowDeviceTypeID = ShowDeviceType.FindAllByName("name", e.NewValue, null, 0, 0)[0].ID;
                selectObj.Item1.SetItem("ShowDeviceTypeID", ShowDeviceTypeID);
            }
            else if (e.PropertyName.EqualIgnoreCase("CommunicateDevices"))
            {
                var CommunicateDeviceID = CommunicateDevice.FindAllByName("name", e.NewValue, null, 0, 0)[0].ID;
                selectObj.Item1.SetItem("CommunicateDeviceID", CommunicateDeviceID);
            }
            else if (e.PropertyName.EqualIgnoreCase("Farms"))
            {
                var FarmID = Farm.FindAllByName("name", e.NewValue, null, 0, 0)[0].ID;
                selectObj.Item1.SetItem("FarmID", FarmID);
            }
            else if (e.PropertyName.EqualIgnoreCase("FacilityTypes"))
            {
                var FacilityTypeSerialnum = FacilityType.FindAllByName("name", e.NewValue, null, 0, 0)[0].Serialnum;
                selectObj.Item1.SetItem("FacilityTypeSerialnum", FacilityTypeSerialnum);
            }
            else
            {
                selectObj.Item1.SetItem(e.PropertyName, e.NewValue);
            }
        }
        public void Explore()
        {
            IValueEventArgs <int> value = new ValueEventArgs <int>(1);

            value = Args.Value(1);

            var multi = new MultiEventArgs <int, string>(1, "1");

            multi = Args.Value(1, "1");

            IMutableValueEventArgs <decimal> mutable = new MutableValueEventArgs <decimal> {
                Value = 1m
            };

            mutable = Args.Mutable(1m);

            var changed = new PropertyValueChangedEventArgs <int>("prop", 2, 3);

            changed = Args.Changed("prop", 2, 3);

            var indexed = new ValueIndexChangedEventArgs <string>(2, "old", "new");

            indexed = Args.Changed(2, "old", "new");

            var changing = new PropertyValueChangingEventArgs <int>("prop", 2, 3);

            changing = Args.Changing("prop", 2, 3);

            var indexing = new ValueIndexChangingEventArgs <string>(2, "old", "new");

            indexing = Args.Changing(2, "old", "new");

            ICancelEventArgs cancel = new ValueIndexCancelEventArgs <string>(2, "value");

            cancel = Args.Cancel(2, "value");

            IIndexEventArgs index = new ValueIndexEventArgs <string>(2, "value");

            index = Args.Index(2, "value");

            IChainedEventArgs chained = new ChainedEventArgs();

            chained = Args.Chained();
        }
        /// <summary>
        /// Set new virtual property value
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="oldvalue"></param>
        /// <param name="newvalue"></param>
        /// <param name="name"></param>
        /// <param name="setter"></param>
        /// <returns></returns>
        protected virtual bool SetPropertyValue <T>(T oldvalue, T newvalue, string name, Action <T> setter)
        {
            // must have changed
            if (Object.Equals(oldvalue, newvalue))
            {
                return(false);
            }

            // create event arguments
            var args1 = new PropertyValueChangingEventArgs(name, oldvalue, newvalue);
            var args2 = new PropertyValueChangedEventArgs(name, oldvalue, newvalue);

            // signal property change
            OnPropertyChange(name, oldvalue, newvalue);

            // signal about to change
            OnPropertyChanging(this, args1);
            setter?.Invoke(newvalue);
            OnPropertyChanged(this, args2);

            // return OK
            return(true);
        }
        /// <summary>
        /// Set new property value
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="value"></param>
        /// <param name="newvalue"></param>
        /// <param name="name"></param>
        protected virtual bool SetPropertyValue <T>(ref T value, T newvalue, [CallerMemberName] string name = null)
        {
            // must have changed
            if (Object.Equals(value, newvalue))
            {
                return(false);
            }

            // create event arguments
            var args1 = new PropertyValueChangingEventArgs(name, value, newvalue);
            var args2 = new PropertyValueChangedEventArgs(name, value, newvalue);

            // signal property change
            OnPropertyChange(name, value, newvalue);

            // signal about to change
            OnPropertyChanging(this, args1);
            value = newvalue;
            OnPropertyChanged(this, args2);

            // return OK
            return(true);
        }
Beispiel #6
0
 private void propertyBill_PropertyValueChanging(object sender, PropertyValueChangingEventArgs e)
 {
     //e.Handled = true;
 }
Beispiel #7
0
 private void propertyBill_PropertyValueChanging(object sender, PropertyValueChangingEventArgs e)
 {
 }