     }
 }
 
-
+/// A reactive UIPickerView data source  
 open class RxPickerViewDataSource<T>: NSObject, UIPickerViewDataSource {
     public typealias NumberOfComponents = (RxPickerViewDataSource, UIPickerView, T) -> Int
     public typealias NumberOfRowsInComponent = (RxPickerViewDataSource, UIPickerView, T, Int) -> Int

        UIBindingObserver(UIElement: self) { (dataSource, components) in
            dataSource.components = components
            pickerView.reloadAllComponents()
            }.on(observedEvent)
    }
}

    import RxCocoa
#endif

/// A reactive UIPickerView adapter which uses `func pickerView(UIPickerView, titleForRow: Int, forComponent: Int)` to desplay content
/**
 Example:
 
let adapter = RxPickerViewStringAdapter<[T]>(...)
 
items
 .bind(to: firstPickerView.rx.items(adapter: adapter))
 .disposed(by: disposeBag)
 
 */
open class RxPickerViewStringAdapter<T>: RxPickerViewDataSource<T>, UIPickerViewDelegate {
    public typealias TitleForRow = (RxPickerViewStringAdapter<T>, UIPickerView, T,Int, Int) -> String?
    
