前言:
今天你们对“vbnet动态”可能比较注重,兄弟们都需要知道一些“vbnet动态”的相关内容。那么小编在网络上汇集了一些有关“vbnet动态””的相关文章,希望你们能喜欢,各位老铁们快快来学习一下吧!WPF实现INotifyPropertyChanged数据更新通知很多都是C#的,自用VB版的示例:
.xaml部分如下:
<Grid> <StackPanel> <Label Content="字符串"/> <TextBox Text="{Binding TmpStr,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/> <Label Content="boolean"/> <CheckBox IsChecked="{Binding Checked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Content="自动关机"></CheckBox> <CheckBox IsChecked="{Binding Checked,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Content="自动关机"></CheckBox> <Button Content="测试" Click="Button_Click"></Button> <Label Content="测试BackColor"/> <TextBox Text="{Binding BackColor,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" ToolTip="只要更新数据我就通知更新"></TextBox> <!--Mode默认双向绑定,更新通知事件UpdateSourceTrigger默认为失去焦点 PropertyChanged:变化即刻通知 LostFocus:失去焦点通知 --> <TextBox Text="{Binding BackColor}" Background="{Binding BackColor}" ToolTip="我要失去焦点才通知数据更新"></TextBox> </StackPanel></Grid>
.vb文件如下
'导入引用Imports System.ComponentModelImports System.Runtime.CompilerServicesClass MainWindowPublic Class AppSets Implements INotifyPropertyChanged Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Protected Function SetProperty(Of T)(ByRef backingStore As T, value As T, <CallerMemberName> Optional propertyName As String = "", Optional onChanged As Action = Nothing, Optional force As Boolean = False) As Boolean If Not force AndAlso EqualityComparer(Of T).[Default].Equals(backingStore, value) Then Return False End If backingStore = value onChanged?.Invoke() OnPropertyChanged(propertyName) Return True End Function Protected Sub OnPropertyChanged(name As String) RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(name)) End Sub '定义属性 Private _TmpStr As String Public Property TmpStr As String Get Return _TmpStr End Get Set(value As String) SetProperty(_TmpStr, value) End Set End Property Private _Checked As Boolean Public Property Checked As Boolean Get Return _Checked End Get Set(value As Boolean) SetProperty(_Checked, value) End Set End Property Private _BackColor As String = "green" '默认值 Public Property BackColor As String Get Return _BackColor End Get Set(value As String) SetProperty(_BackColor, value) End Set End PropertyEnd ClassDim AppSet As New AppSetsPublic Sub New() ' 此调用是设计器所必需的。 InitializeComponent() ' 在 InitializeComponent() 调用之后添加任何初始化。 DataContext = AppSetEnd SubPrivate Sub Button_Click(sender As Object, e As RoutedEventArgs) AppSet.TmpStr = "哈哈哈哈哈" AppSet.Checked = True AppSet.BackColor = "red"End SubEnd Class
以上代码新建WPF应用复制到对应文件即可。本文为原创,转载请注明出处为桔子雨工作室。原文:WPF中的数据绑定技术用vb.net实现INotifyPropertyChanged的完整示例 – 桔子雨
版权声明:
本站文章均来自互联网搜集,如有侵犯您的权益,请联系我们删除,谢谢。
标签: #vbnet动态