 
   public var doubleValue: DynamicSubject<Double> {
     return dynamicSubject(
-      signal: controlEvent.eraseType(),
+      signal: keyPath(#keyPath(NSControl.doubleValue), ofType: Double.self).eraseType(),
       triggerEventOnSetting: false,
       get: { $0.doubleValue },
       set: { $0.doubleValue = $1 }


  public var objectValue: DynamicSubject<Any?> {
    return dynamicSubject(
      signal: controlEvent.eraseType(),
      triggerEventOnSetting: false,
      get: { $0.objectValue },
      set: { $0.objectValue = $1 }


  public var isEnabled: DynamicSubject<Bool> {
    return dynamicSubject(
      signal: keyPath(#keyPath(NSControl.isEnabled), ofType: Bool.self).eraseType(),
      triggerEventOnSetting: false,
      get: { $0.isEnabled },
      set: { $0.isEnabled = $1 }
