Переменная отображения в TextBox - PullRequest
0 голосов
/ 07 сентября 2018

У меня проблемы с отображением переменной в текстовом поле.

В основном пытаюсь понять, как работают привязки в XAML.

Мне нужно попытаться отобразить переменные TextBoxFileName и TextBoxFilePath в соответствующих полях. Информация, которую извлекают переменные, хранится в отдельном GlobalVariableStorage классе. Я не хочу, чтобы поля TextBox были редактируемыми, поэтому я установил их только для чтения. Я не хочу, чтобы пользователь вообще мог редактировать данные в этих полях. Если у вас есть идеи для альтернативных методов отображения, пожалуйста, не стесняйтесь предлагать.

1012 * 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;           

    }
}

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Добавьте два свойства только для чтения к вашему 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}"/>
0 голосов
/ 07 сентября 2018

Вам трудно, потому что у вас неправильный подход.
Например, вы не следовали шаблону MVVM. Кроме того, вам не нужно устанавливать IsReadOnly в true, вы просто используете одностороннюю привязку.

<TextBox Text="{Binding TextBoxFileName,Mode=OneWay}"/>

Чтобы правильно понять и внедрить MVVM, я предлагаю вам прочитать следующие ссылки: MVVM для WPF . Хотя это для WPF, но UWP очень похож на WPF, проблем не возникнет.

Если вы хотите изучать MVVM, я могу вам помочь. Просто отправьте мне сообщение на Discord: Red Wei # 2396

Веселитесь.

...