VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
78 个问题
大家好,
我有以下代码,我正在尝试将共享属性更改推送到另一个类对象实例。我有一个使用共享属性语言的类设置。
我有另一个类测试,它采用这个共享属性。我想更改设置中的语言属性,以便语言更改立即在我的测试对象实例中更新。我该怎么做?
谢谢
Imports System.ComponentModel
Imports System.Runtime.CompilerServices
Public Class Form1
Public Test As New Tests
Public BS_Setting As New BindingSource
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
BS_Setting.DataSource = Test
DataGridView2.DataSource = BS_Setting
End Sub
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
BS_Setting.Add(New Test())
End Sub
Private Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Setting.language = "French"
End Sub
End Class
Public Class Setting
Implements INotifyPropertyChanged
Public Sub New()
End Sub
Public Shared languageValue As String = "ENG"
Public Shared Property language() As String
Get
Return languageValue
End Get
Set(ByVal value As String)
languageValue = value
End Set
End Property
Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
Protected Overridable Sub OnPropertyChanged(<CallerMemberName> Optional memberName As String = Nothing)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(memberName))
End Sub
End Class
Public Class Test
Public Sub New()
End Sub
Private LangValue As String
Public Property Lang As String
Get
Return Setting.language
End Get
Set(ByVal value As String)
LangValue = value
End Set
End Property
End Class
Public Class Tests
Inherits BindingList(Of Test)
End Class
Note:此问题总结整理于:Push Shared Property value change to object instances Vb.Net
我想更改设置中的语言属性,以便语言更改立即在我的测试对象实例中更新。
尝试在更改“language”属性时刷新 DataGridView。
Setting.language = "French"
DataGridView2.Refresh()
我的测试结果。 希望对您有所帮助。
如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。
注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。