Advertisement
Guest User

Untitled

a guest
Aug 1st, 2018
71
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.04 KB | None | 0 0
  1. type IContextSource<'ctx>=
  2. abstract member Get:'ctx->unit
  3.  abstract member Set:'ctx->'ctx
  4.  
  5. type Context={Prop1:string;Prop2:string}
  6. type ViewModel()=
  7.  
  8.  member val Property1 ="" with get,set
  9.  member val Property2 ="" with get,set
  10.  interface IContextSource<Context>
  11.   with member x.Get ctx=x.Property1<-ctx.Prop1
  12.        member x.Set ctx={ctx with Prop1=x.Property1}
  13.        
  14.    
  15.  
  16. let vmActorFun=function
  17.  |(ctx,vm:obj) -> match vm with
  18.                    | :? IContextSource<Context> as v->
  19.                                                       v.Get(ctx)
  20.                                                       setVmToWindow vm
  21.                                                      
  22.                                                      
  23. let vmActorUpdaterFun=function
  24.    |(ctx) -> match getVm() with
  25.                      | :? IContextSource<Context> as v->
  26.                                                          let ctxToUpdate=v.Set(ctx)
  27.                                                          contextActor.Tell(Update ctx)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement