Я делаю приложение WPF и хочу, чтобы текст в моем текстовом поле изменялся при изменении значения переменной, однако, хотя я устанавливаю переменную правильно, я не могу заставить ее обновить текстовое поле.
У меня есть этот класс:
public class UserSettings : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private string username;
public string nameuser
{
get { return username;} set { username= value; OnPropertyChanged(nameuser); }
}
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
Который вызывается в этом классе:
public partial class User: Window
{
private UserSettings objsettings = null;
public User()
{
objsettings = new UserSettings();
DataContext = objsettings;
InitializeComponent();
Console.WriteLine("objsettings.username1: " + objsettings.nameuser);
}
public void SetUserSettings(string username)
{
Console.WriteLine("Username: " + username);
objsettings.nameuser= username;
Console.WriteLine("objsettings.username2: " + objsettings.nameuser);
}
, а XAML:
<TextBox Text="{Binding nameuser, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left" Height="23" Margin="210,193,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="30"/>
Консольная печать в SetUserSettings печатает значение, однако консольная печать вверху печатает значение как ничто.Я знаю, что верхнее значение ничего не печатает, поскольку оно устанавливается ПОСЛЕ вызова консоли печати (следовательно, оно еще не будет содержать значение), но как мне обновить его, чтобы окно печатало новое значение, как мне это сделать?заставить его непрерывно проходить через User (), не открывая новые окна, а просто обновляя значения?