2009-11-08 21 views

Antwort

15

Es ist im Grunde das gleiche wie in einer anderen Sprache:

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

Das ist nicht „im Grunde die gleichen“, wie er anderen Sprachen: P –

+1

Danke, Was genau das ist [] tun Attribut? Ich kann keine Dokumentation darüber finden. – rysama

+4

@RodYan - es wirkt sich auf die kompilierte Form aus, die das Ereignis dauert; Um mit anderen .NET-Sprachen zu interoperieren (und Schnittstellen zu implementieren, die .NET-Ereignisse offenlegen), müssen Sie sie auf einen IEvent-Wert anwenden. Dies führt dazu, dass 'add_'- und' remove_'-Methoden generiert werden, im Gegensatz zu einer Eigenschaft des Typs 'IEvent <_,_>', wie unter http://msdn.microsoft.com/en-us/library/ee370437(VS) beschrieben .100) .aspx. – kvb

Verwandte Themen