有人可以解释这个问题吗?
我在类中创建了一堆控件
public static TextBox uname = new TextBox { PlaceholderText = "Username", Margin = new Thickness(0, 5, 0, 0), Text = MainPage.UNAME };
当我调用数据库来更新主页上的UNAME字段时,它确实可以打印新值。但是,上面显示的位于不同类中的textBox不会更新为新值。
我已经尝试在数据库获取值但没有运气后初始化此文本框。
感谢任何帮助。
答案 0 :(得分:0)
在创建页面时实例化并分配uname TextBox。虽然您调用数据库来更新MainPage.UNAME
,但您没有更改uname.Text
的指针内容。您可以直接设置uname.Text
的简单方法,例如uname.Text = MainPage.UNAME
。
您也可以像后面的代码一样使用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}" />
ViewModel.cs
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));
}
}
答案 1 :(得分:-1)
我找到了解决方法。
我更改了这一行:
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
然后..我在数据库调用之后调用了init,并且poof它工作了!