Skip to content

Instantly share code, notes, and snippets.

@pillowsoft
Created October 6, 2014 19:31
Show Gist options
  • Select an option

  • Save pillowsoft/ebf0e7b0a9db125ef09d to your computer and use it in GitHub Desktop.

Select an option

Save pillowsoft/ebf0e7b0a9db125ef09d to your computer and use it in GitHub Desktop.

Revisions

  1. pillowsoft created this gist Oct 6, 2014.
    10 changes: 10 additions & 0 deletions ReactivePropertyExample
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,10 @@
    let bindSliderValueChangedTwoWayConverter<'destType> (slider:Slider) (reactiveProperty:ReactiveProperty<'destType>) (converter: DataConverter<'destType, float>) =

    let disposable1 = slider.ValueChanged |> Observable.map (fun (ea) -> (slider.Value))
    |> Observable.iter (fun value -> Debug.WriteLine("Slider:" + value.ToString()))
    |> Observable.subscribe (fun value -> reactiveProperty.Value <- converter.ConvertBack value)

    let disposable2 = reactiveProperty
    |> Observable.iter (fun value -> Debug.WriteLine("Prop:" + value.ToString()))
    |> Observable.subscribe (fun value -> slider.Value <- converter.Convert value)

    new CompositeDisposable([ disposable1; disposable2 ])