我正在寻找一种方法来改变用户控件中的标签内容。
如果是页面,我会使用
更新标签的内容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"/>
答案 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));
}
}