变量更改时文本框不更新

TextBox目前在我的项目中遇到了一个字段问题。

目前,我有一个NavigationViewItemwhich 是一个SaveButton_ClickAsync. 它打开一个保存文件对话框并允许用户输入文件名并将其保存为一个.txt.csv文件。

我有一个全局变量,它存储保存为字符串的文档的名称和文件位置。然后在整个项目中引用该变量。

其中一个示例是TextBox显示FileNameand FilePath

在第一次保存后离开设置页面并返回设置页面时,我目前已更新此设置。它还会在保存文档时更新,然后再次保存,但不会在第一次保存时更新,而不会离开SettingsPage或再次保存。

当我当前在SettingsPage第一次保存文档时,它不会更新。我需要它来做到这一点

我相信这与以下部分中Private void GlobalVariables_PropertyChanged使用的方式有关SettingsPage。我已经包含了所有相关的代码,所以你可以看到它是如何工作的以及程序经历的步骤。

我需要实现的是第一次保存文件时,GlobalVariebles_PropertyChanged必须触发。我觉得我需要在程序加载时自动将字符串加载到 _fileName/_filePath 中,这将允许PropertyChanged将其确定为字符串更改。不过,我可能正抓着稻草。对此的任何想法/想法都会很棒。

Get Set内部GlobalVariableStorage是一个占位符,让我看的时候类检测到的变化。


摇曳的蔷薇
浏览 199回答 1
1回答

慕村9548890

这是一个可怕的“hacky”解决方案,但我现在所做的是在 SettingsPage 案例中,完成了 Frame.Naviate 以刷新页面。有用。它的恶心。但它有效。这仅在您当前位于 SettingsPage 并保存文件时有效SettingsPage(PropertyChanged 大小写)private void GlobalVariables_PropertyChanged(object sender, PropertyChangedEventArgs e)        {            switch (e.PropertyName)            {                case nameof(GlobalVariables.FilePath):                    NotifyPropertyChanged(nameof(TextBoxFilePath));                    Frame.Navigate(this.GetType());                    break;                case nameof(GlobalVariables.FileName):                    NotifyPropertyChanged(nameof(TextBoxFileName));                    Frame.Navigate(this.GetType());                    break;            }        }
打开App,查看更多内容
随时随地看视频慕课网APP