将共享属性值更改推送到对象实例 Vb.Net

Hui Liu-MSFT 46,951 信誉分 Microsoft 供应商
2024-03-15T05:42:04.5666667+00:00

大家好,

我有以下代码,我正在尝试将共享属性更改推送到另一个类对象实例。我有一个使用共享属性语言的类设置。

我有另一个类测试,它采用这个共享属性。我想更改设置中的语言属性,以便语言更改立即在我的测试对象实例中更新。我该怎么做?

谢谢

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  
  

42822-test.gif

Note:此问题总结整理于:Push Shared Property value change to object instances Vb.Net

VB
VB
Microsoft 开发的一种面向对象的编程语言,其在 .NET Framework 上实现。 以前称为 Visual Basic .NET。
78 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Jiale Xue - MSFT 40,746 信誉分 Microsoft 供应商
    2024-03-15T11:02:08.2133333+00:00

    我想更改设置中的语言属性,以便语言更改立即在我的测试对象实例中更新。

    尝试在更改“language”属性时刷新 DataGridView。

            Setting.language = "French"  
            DataGridView2.Refresh()  
    

    我的测试结果。 希望对您有所帮助。

    42910-gif.gif


    如果答案是正确的,请点击“接受答案”并点赞。 如果您对此答案还有其他疑问,请点击“评论”。

    注意:如果您想接收相关电子邮件,请按照我们的文档中的步骤启用电子邮件通知 此线程的通知。

    0 个注释 无注释

0 个其他答案

排序依据: 非常有帮助