11
Wie würde man INotifyPropertyChanged für die Verwendung in einem F # -Typ implementieren? Danke!F #: Verwenden von INotifyPropertyChanged für die Datenbindung
Wie würde man INotifyPropertyChanged für die Verwendung in einem F # -Typ implementieren? Danke!F #: Verwenden von INotifyPropertyChanged für die Datenbindung
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
Das ist nicht „im Grunde die gleichen“, wie er anderen Sprachen: P –
Danke, Was genau das ist [] tun Attribut? Ich kann keine Dokumentation darüber finden. –
rysama
@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