C# TextBox控件未更新。Text属性
有人能解释这个问题吗 我在一个类中创建了一组控件C# TextBox控件未更新。Text属性,c#,uwp,C#,Uwp,有人能解释这个问题吗 我在一个类中创建了一组控件 public static TextBox uname = new TextBox { PlaceholderText = "Username", Margin = new Thickness(0, 5, 0, 0), Text = MainPage.UNAME }; 当我调用数据库更新主页上的UNAME字段时,它会更新,我可以打印新值。但是,上面显示的位于不同类中的文本框不会更新为新值 我尝试在数据库获取值后初始化此文本框,但没有成功 非常感
public static TextBox uname = new TextBox { PlaceholderText = "Username", Margin = new Thickness(0, 5, 0, 0), Text = MainPage.UNAME };
当我调用数据库更新主页上的UNAME字段时,它会更新,我可以打印新值。但是,上面显示的位于不同类中的文本框不会更新为新值
我尝试在数据库获取值后初始化此文本框,但没有成功
非常感谢您的帮助。我找到了解决办法 我改变了这一行:
public static TextBox uname = new TextBox { PlaceholderText = "Username", Margin = new Thickness(0, 5, 0, 0), Text = MainPage.UNAME };
为此:
public static TextBox uname = new TextBox { PlaceholderText = "Username", Margin = new Thickness(0, 5, 0, 0) };
然后将我的所有文本分配放在初始化方法中
例如,uname.Text=MainPage.uname
然后。。在DB调用之后,我调用了init,结果它成功了 创建页面时,将实例化并分配uname文本框。虽然您调用数据库来更新
MainPage.UNAME
,但是您没有更改UNAME.Text
的指针内容。您可以像uname.Text=MainPage.uname
那样直接设置uname.Text
您还可以像代码隐藏一样使用xaml数据绑定
MainPage.xaml.cs
public ViewModel viewModel { get; set; }
public MainPage()
{
this.InitializeComponent();
this.viewModel = this.DataContext as ViewModel;
}
private void MyButton_Click(object sender, RoutedEventArgs e)
{
viewModel.Uname = MainPage.UNAME;
}
MainPage.xaml
<TextBox
Margin="0,0,5,0"
PlaceholderText="User Name"
Text="{Binding Path=Uname}" />
拥有
静态
控件实例是个坏主意-如果您想显示UI的多个实例怎么办?您的字段也是公共
,而不是只读
。考虑把它转换成一个自动属性。谢谢提示:没有为此使用xaml。框是用代码创建的。
public event PropertyChangedEventHandler PropertyChanged;
private string uname;
public string Uname
{
get
{
return uname;
}
set
{
uname = value;
OnPropertyChanged();
}
}
public void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChangedEventHandler eventHandler = this.PropertyChanged;
if (eventHandler != null)
{
eventHandler(this, new PropertyChangedEventArgs(propertyName));
}
}