Как я могу создать событие, которое возникает при изменении переменной или свойства (или я могу просто поместить код, который я бы разместил в событии в разделе Set свойства?переменное/свойство измененное событие в vb.net
ответ
MSDN library entry INotifyPropertyChanged.PropertyChanged Event
От:
Public Class DemoCustomer
Implements INotifyPropertyChanged
Private customerNameValue As String = String.Empty
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
Private Sub NotifyPropertyChanged(ByVal info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
Public Property CustomerName() As String
Get
Return Me.customerNameValue
End Get
Set(ByVal value As String)
If Not (value = customerNameValue) Then
Me.customerNameValue = value
NotifyPropertyChanged("CustomerName")
End If
End Set
End Property
End Class
Да, лучший (если не единственный) способ сделать это, чтобы полностью скрыть фактические переменной (сделать Private) и выставить его через свойство, которое выстреливает события, когда используется сеттер.
I делайте это регулярно, но я обнаружил, что важно НЕ поднять событие, если новое значение похоже на старое значение. Это устраняет ненужные вызовы функций и иногда предотвращает рекурсивные события.
Большой пункт о не поднимая событие на не-изменения - я видел эту причину проблем с привязкой данных WPF. – itowlson
Часто нет необходимости в каком-либо событии, помните, что вы можете делать почти что угодно в сеттере. –
Что вы имеете в виду, если они похожи? –
Каноническое событие для этого события PropertyChanged
, которое определено в интерфейсе INotifyPropertyChanged
. Вы можете поднять это из своих агентов по настройке. (Обратите внимание, что VB.NET не будет поднимать событие для вас: вы должны включить код для его повышения.)
Если код, который вы хотите запустить при изменении, логически является частью вашего класса (например, обновление статуса клиента когда баланс изменяется), тогда уместно поместить это в средство настройки свойств, а не в обработчик события. Обработчики событий предназначены для того, чтобы внешний код должен был знать об изменениях, например. для обновления пользовательского интерфейса в ответ на изменение статуса клиента.
Посмотрите на реализацию интерфейса INotifyPropertyChanged this example, это стандартный метод, используемый для этой функции. Важными компонентами являются метод NotifyPropertyChanged и код внутри обработчиков набора свойств.
- 1. vb.net объекты значение свойства измененное событие
- 2. Где Видимое Измененное Событие ушло в asp.net
- 3. TextBox Измененное событие
- 4. Название окна Измененное событие
- 5. Прикрепленное свойство Измененное событие?
- 6. проверено измененное событие не срабатывает
- 7. WPF XAML Binding не вызывая измененное событие
- 8. VSTO - MS Office 'Color Scheme' измененное событие
- 9. Коллекция ObservableCollection Измененное событие не срабатывает
- 10. jquery on data-xxxx измененное событие?
- 11. Как поднять измененное событие недвижимости извне Entity?
- 12. Как передать измененное событие свойства предку?
- 13. Как обновить событие, измененное на fullcalendar bootstrap?
- 14. перенаправить событие в VB.NET
- 15. onClick событие в VB.NET
- 16. Поднять событие в VB.NET
- 17. Событие Form Paint в VB.net
- 18. Преобразование VB.NET событие в C#
- 19. добавить событие кнопки в vb.net
- 20. vb.net C# статическое событие?
- 21. Кнопка столкновения событие vb.net
- 22. vb.net событие отражения dll
- 23. Вставить и обновить заявление с в тексте Измененное событие
- 24. В кнопках ASP.NET MVC радио проверил измененное событие
- 25. Подписка на INotifyCollection Измененное событие через IEnumerable в пользовательском контроле
- 26. Как создать выпадающий список событий в ретрансляторе (выбранное измененное событие)
- 27. Как обрабатывать измененное событие click click в расширении Firefox?
- 28. Как создать динамическую DataGrid текущей ячейки измененное событие в МОФ
- 29. Как поднять измененное событие в WPF по свойству элемента данных
- 30. Событие vb.net, насколько полезно?
, каковы будут последствия просто поместить 'Sub' в раздел' Set' свойства? – luchosrock