如何在类WPF中从void更改用户控件中的标签内容

时间:2014-02-12 13:52:17

标签: c# wpf winforms user-controls wpf-controls

我正在寻找一种方法来改变用户控件中的标签内容。

如果是页面,我会使用

更新标签的内容
var main = App.Current.MainWindow as MainWindow;
main.PageTransitionControl.ShowPage(new LoginControl());

但我无法将其转换为用户控制。

精简版问题是如何从班级更新标签的内容。 用户控件中的标签.xaml ...

感谢您提前

---- 修改:

标签:

<Label x:Name="Test1" Content="Label" HorizontalAlignment="Left" Margin="10,72,0,0" VerticalAlignment="Top" Width="404"/>

2 个答案:

答案 0 :(得分:0)

你需要的是像这样的公共方法

 /// </summary>
    public partial class LoginControl : UserControl
    {
        public LoginControl()
        {
            InitializeComponent();
        }
        public string SetMyLabel(string text)
        {
            Test1.Content = text;  
        }
    }

您可以设置文字

       var main = App.Current.MainWindow as MainWindow;
        LoginControl log = new LoginControl();  
        main.PageTransitionControl.ShowPage(log);
        log.SetMyLabel("YourText");

答案 1 :(得分:0)

将属性绑定到标签内容,并将值分配给您的类

中的该属性
private string _labelname;
public string labelname
{
    get
    { 
        return _labelname;
    }

    set
    {
       _labelname=value;
        OnPropertyChanged("labelname");
    }
}

在你的XAML中

<Label x:Name="Test1" Content="{Binding labelname}" HorizontalAlignment="Left" Margin="10,72,0,0" VerticalAlignment="Top" Width="404"/>

然后,您可以像这样

从类中为labelname属性赋值
labelname="New Label";

编辑:在班级中实施此方法

 public void OnPropertyChanged(string propertyName)
 {
     PropertyChangedEventHandler handler = PropertyChanged;
     if (handler != null)
     {
         handler(this, new PropertyChangedEventArgs(propertyName));
     }
  }