2009-11-08 15 views

Odpowiedz

15

Jest to w zasadzie takie same, jak w każdym innym języku:

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

To nie jest „zasadniczo taki sam” jak innych językach: P –

+1

Dzięki, Czym dokładnie jest [] atrybut zrobić? Nie mogę znaleźć żadnej dokumentacji na ten temat. – rysama

+4

@RodYan - wpływa na skompilowany formularz, który zajmuje wydarzenie; do współdziałania z innymi językami .NET (i do implementowania interfejsów odsłaniających zdarzenia .NET), musisz zastosować go do wartości IEvent. Powoduje to, że generowane są metody 'add_' i' remove_', w przeciwieństwie do ujawniania właściwości typu 'IEvent <_,_>', jak opisano na stronie http://msdn.microsoft.com/en-us/library/ee370437 (VS .100) .aspx. – kvb

Powiązane problemy