2009-11-08 3 views

Répondre

15

Il est essentiellement le même que dans une autre langue:

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

Ce n'est pas « essentiellement les mêmes » que les autres langues: P –

+1

Merci, Quelle est la [] attribut de faire exactement? Je n'arrive pas à trouver la documentation à ce sujet. – rysama

+4

@RodYan - il affecte la forme compilée que l'événement prend; Pour interopérer avec d'autres langages .NET (et implémenter des interfaces exposant des événements .NET), vous devez l'appliquer à une valeur IEvent. Cela provoque les méthodes 'add_' et' remove_' à générer, par opposition à réellement exposer une propriété de type 'IEvent <_,_>', comme décrit à http://msdn.microsoft.com/en-us/library/ee370437(VS 100) .aspx. – kvb

Questions connexes