2009-11-08 5 views

Respuesta

15

Es básicamente el mismo que en cualquier otro idioma:

open System.ComponentModel 
type MyType() = 
    let ev = new Event<_,_>() 
    let mutable str = "" 
    member x.StringProp 
    with get() = str 
    and set(str') = 
     str <- str' 
     ev.Trigger(x, PropertyChangedEventArgs("StringProp")) 
    interface INotifyPropertyChanged with 
    [<CLIEvent>] 
    member x.PropertyChanged = ev.Publish 
+9

Eso no es "básicamente los mismos", como otros idiomas: P Gracias –

+1

, cuál es exactamente el [] de atributo hacer? Parece que no puedo encontrar la documentación en él. – rysama

+4

@RodYan: afecta al formulario compilado que toma el evento; para la interoperabilidad con otros lenguajes .NET (y para implementar interfaces que exponen eventos .NET), deberá aplicarlo a un valor de IEvent. Esto hace que se generen los métodos 'add_' y' remove_', en lugar de exponer realmente una propiedad de tipo 'IEvent <_,_>', como se describe en http://msdn.microsoft.com/en-us/library/ee370437(VS .100) .aspx. – kvb

Cuestiones relacionadas