我难以在文本框中显示变量。
主要尝试了解Bindings在XAML中的工作方式。
我需要尝试在相关字段中显示变量TextBoxFileName
和TextBoxFilePath
。变量获取的信息存储在单独的GlobalVariableStorage
类中。我不希望TextBox
字段可编辑,因此请将它们设置为只读。我根本不希望用户能够在这些字段中编辑数据。如果您有其他显示方法的想法,请随时提出建议。
XAML
<Page.Resources>
<ResourceDictionary>
<ResourceDictionary.ThemeDictionaries>
<!-- Placeholder for the theme dictionary -->
</ResourceDictionary.ThemeDictionaries>
</ResourceDictionary>
</Page.Resources>
<Frame Background="{StaticResource CustomAcrylicDarkBackground}">
<StackPanel>
<TextBox Width="500" Header="File Name" PlaceholderText="Name Of File" IsReadOnly="True" Foreground="White" Text=""/>
<TextBox Width="500" Header="File Location" PlaceholderText="File Location" IsReadOnly="True" Foreground="White" Text=""/>
</StackPanel>
</Frame>
代码隐藏
public sealed partial class SettingsPage : Page
{
public SettingsPage()
{
this.InitializeComponent();
}
public class TextBoxDisplay
{
public string TextBoxFileName = GlobalVariables.FileName;
public string TextBoxFilePath = GlobalVariables.FilePath;
}
}
答案 0 :(得分:2)
由于方法错误,您遇到了困难。
例如,您没有遵循MVVM模式。另外,您无需将IsReadOnly
设置为true,只需使用单向绑定即可。
<TextBox Text="{Binding TextBoxFileName,Mode=OneWay}"/>
要正确理解和实现MVVM,建议您阅读以下链接:MVVM for WPF。尽管它是用于WPF的,但是UWP与WPF非常相似,您不会有任何问题。
如果您想学习MVVM,我可以为您提供帮助。给我发送有关Discord的消息:Red Wei#2396
玩得开心。
答案 1 :(得分:1)
向您的SettingsPage
类添加两个只读属性:
public sealed partial class SettingsPage : Page
{
public SettingsPage()
{
this.InitializeComponent();
}
public string TextBoxFileName => GlobalVariables.FileName;
public string TextBoxFilePath => GlobalVariables.FilePath;
}
...并绑定到这些:
<TextBox Header="File Name" ... Text="{x:Bind TextBoxFileName}"/>
<TextBox Header="File Name" ... Text="{x:Bind TextBoxFilePath}"/>