public void Watch(object obj_to_track, string property_name, KIXEvent event_to_send) { Type objType = obj_to_track.GetType(); PropertyInfo property = objType.GetProperty(property_name); var currentValue = property.GetValue(obj_to_track); var watchOBJ = new KIXWatchObject { target = obj_to_track, targetType = obj_to_track.GetType(), value = currentValue, property = property, changeEvent = event_to_send }; watchObjects_.Add(watchOBJ); }
public void CheckWatch() { for (int i = 0; i < watchObjects_.Count; ++i) { KIXWatchObject watch = watchObjects_[i]; var currentValue = watch.property.GetValue(watchObjects_[i].target); if (currentValue.ToString() != watch.value.ToString()) { watch.value = currentValue; watchObjects_[i] = watch; watch.changeEvent = new KIXEvent(watch.changeEvent.Type, new KIXData { Value = watch }); FireEvent(watch.changeEvent); } } }