为了账号安全,请及时绑定邮箱和手机立即绑定

变量更改时文本框不更新

变量更改时文本框不更新

C#
摇曳的蔷薇 2022-01-09 10:12:02
我TextBox目前在我的项目中遇到了一个字段问题。目前,我有一个NavigationViewItemwhich 是一个SaveButton_ClickAsync. 它打开一个保存文件对话框并允许用户输入文件名并将其保存为一个.txt或.csv文件。我有一个全局变量,它存储保存为字符串的文档的名称和文件位置。然后在整个项目中引用该变量。其中一个示例是TextBox显示FileNameand FilePath。在第一次保存后离开设置页面并返回设置页面时,我目前已更新此设置。它还会在保存文档时更新,然后再次保存,但不会在第一次保存时更新,而不会离开SettingsPage或再次保存。当我当前在SettingsPage第一次保存文档时,它不会更新。我需要它来做到这一点我相信这与以下部分中Private void GlobalVariables_PropertyChanged使用的方式有关SettingsPage。我已经包含了所有相关的代码,所以你可以看到它是如何工作的以及程序经历的步骤。我需要实现的是第一次保存文件时,GlobalVariebles_PropertyChanged必须触发。我觉得我需要在程序加载时自动将字符串加载到 _fileName/_filePath 中,这将允许PropertyChanged将其确定为字符串更改。不过,我可能正抓着稻草。对此的任何想法/想法都会很棒。该Get Set内部GlobalVariableStorage是一个占位符,让我看的时候类检测到的变化。
查看完整描述

1 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

这是一个可怕的“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;

            }

        }


查看完整回答
反对 回复 2022-01-09
  • 1 回答
  • 0 关注
  • 197 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号