.net 从其他类设置标签的内容

.net 从其他类设置标签的内容,.net,wpf,vb.net,.net,Wpf,Vb.net,我有一个简单的问题。我想从另一个类更改label的内容,但没有这样做 以下是我的XML代码: <Window x:Class="MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width=

我有一个简单的问题。我想从另一个类更改label的内容,但没有这样做

以下是我的XML代码:

<Window x:Class="MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Label Content="Imię:" HorizontalAlignment="Left" Margin="47,50,0,0" VerticalAlignment="Top"/>
        <Label Content="Nazwisko:" HorizontalAlignment="Left" Margin="19,81,0,0" VerticalAlignment="Top"/>
        <TextBox x:Name="tbImie" HorizontalAlignment="Left" Height="23" Margin="87,52,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
        <TextBox x:Name="tbNazwisko" HorizontalAlignment="Left" Height="23" Margin="87,83,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="btnDodaj" Content="Dodaj" HorizontalAlignment="Left" Margin="233,65,0,0" VerticalAlignment="Top" Width="75"/>
        <Button x:Name="btnWyswietl" Content="Wyświetl" HorizontalAlignment="Left" Margin="332,65,0,0" VerticalAlignment="Top" Width="75"/>
        <Label x:Name="labelOsoba" Content="a" HorizontalAlignment="Left" Margin="82,189,0,0" VerticalAlignment="Top" Height="27" Width="141"/>

    </Grid>
</Window>
这是我的课程,设置标签不起作用:

    Public Class Osoby

        Dim listaOsob As List(Of String)
        Dim glowneOkno As MainWindow


        Public Sub New()
            listaOsob = New List(Of String)
        End Sub


        Public Sub dodajOsobe(ByVal imie As String, ByVal nazwisko As String)
            listaOsob.Add(imie)
        End Sub


        Public Sub wyswietlOsoby()
            glowneOkno = New MainWindow()
            glowneOkno.labelOsoba.Content = listaOsob(0)  'here, it doesn't work
        End Sub

    End Class

PS.对不起,波兰名称:

它没有更新mainwindow对象。因为您正在第二个类中创建mainwindow对象的新实例。相反,您可以在第二个类的构造函数中执行的操作是传递这个已创建的Mainwindow对象,并在您的函数中更改label的内容,它肯定会对您有用

解决方案

MainWindow.xaml.cs

public Mainwindow()
{
   InitializeComponent();
   Dim osoba As Osoby = New Osoby(this)

}
二等舱

//现在在第二个对象的构造函数中

public void osoby(MainWindow obj)
{
  this.glowneOkno = obj;
}

因为我是c语言的家伙。请使用在线工具将其转换为相应的vb。

这是Windows窗体中的吗?“它没有发生”的确切含义是什么;你没有得到错误,但是标签的内容没有改变吗?我使用WPF。标签的内容没有任何变化,但我没有发现任何错误。非常感谢!现在我明白了。我也在使用c,所以这段代码对我来说很清楚
public void osoby(MainWindow obj)
{
  this.glowneOkno = obj;
}