11
Как реализовать INotifyPropertyChanged для использования в стиле F #? Спасибо!F #: Использование INotifyPropertyChanged для привязки данных
Как реализовать INotifyPropertyChanged для использования в стиле F #? Спасибо!F #: Использование INotifyPropertyChanged для привязки данных
Это в основном так же, как и в любом другом языке:
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
Это не «в основном те же», как и другие языки: P –
Спасибо, Что же такое [] атрибут делать? Кажется, я не могу найти документацию. –
rysama
@RodYan - он влияет на скомпилированную форму, которую принимает событие; для взаимодействия с другими языками .NET (и для реализации интерфейсов, отображающих события .NET), вам необходимо применить его к значению IEvent. Это приводит к генерированию методов 'add_' и' remove_', в отличие от фактического выставления свойства типа 'IEvent <_,_>', как описано на http://msdn.microsoft.com/en-us/library/ee370437(VS 0,100) .aspx. – kvb