Не удается получить доступ к тексту текстового поля в .xaml.cs - PullRequest
0 голосов
/ 19 июня 2019

Это странно.У меня есть текстовый блок (назовите его ErrorMessage_Textblock) в .xaml, и когда я попытался получить доступ и изменить его текст в .xaml.cs, он выдает мне сообщение об ошибке «Имя« ErrorMessage_Textblock »не существует в текущем контексте»

По существу, ErrorMessage_Textblock предполагается пустым при запуске программы.Когда пользователь нажимает кнопку «Пуск», мой код в .xaml.cs проверяет, заполнил ли пользователь всю необходимую информацию в текстовых полях.Если какая-либо информация отсутствует, она передает строку в ErrorMessage_Textblock - например, «пожалуйста, введите, где сохранить файлы».

SideMenuControl.xaml:

<UserControl x:Class="Fasetto.Word.SideMenuControl"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup- compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
         xmlns:local="clr-namespace:Fasetto.Word"
         xmlns:core="clr- 
namespace:Fasetto.Word.Core;assembly=Fasetto.Word.Core"
         mc:Ignorable="d" d:DesignWidth="900" d:DesignHeight="1000" 
Background="#FF2D2D30">



<UserControl.Template>
    <ControlTemplate TargetType="UserControl">
        <Border>

//some code ...

<Button
 Click="StartButton"
 Content="Start" FontSize="30" Padding="1,1,1,1" Foreground="Lime" 
 BorderBrush="Red"
/>


<TextBlock x:Name="ErrorMessage_Textblock" Foreground="OrangeRed"           
  FontFamily="/VIL_GUI_V5.0;component/Fonts/#Lato Light" 
  Margin="50,10,50,510" FontSize="20"
/>

SideMenuControl.xaml.cs: (примечание: строка 7 выдает ошибку в VS)

 public void StartButton(object sender, RoutedEventArgs e) {


        if (Fasetto.Word.Core.IoC.Settings.Monaco_Report_Type.EditedText 
== null || Fasetto.Word.Core.IoC.Settings.Monaco_Report_Type.EditedText == "")
        {
            //do something
            ErrorMessage_Textblock = "please enter Report Type (Monaco)";

        }

1 Ответ

0 голосов
/ 19 июня 2019

Я нашел свой ответ. У вас уже есть доступ к кнопке, поэтому вы можете найти сетку, к которой она принадлежит. Затем вы можете найти TextBlock. Единственное, что TextBlock принадлежит к той же сетке, что и кнопка.

Чтобы получить полное руководство и код, нажмите на эту ссылку:

https://stackoverflow.com/a/35484118/10772348

...