Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.94/47: Рейтинг темы: голосов - 47, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 12

Изменить значение textbox

09.06.2018, 22:44. Показов 9358. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
На главном окне MainWindows размещен textbox.
При нажатии кнопки с Page должно меняться содержимое textbox.
Как обращаться к textbox в этом случае?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.06.2018, 22:44
Ответы с готовыми решениями:

Изменить значение Textbox триггером
Здравствуйте, мне нужно чтобы при фокусе текстбокса текст, хранимый там по умолчанию сбрасывался. Вот как решаю проблему: <Style...

Как изменить значение textbox.text сразу при присвоении?
Здравствуйте, есть пример кода. Когда я через клавишу F11 (VS) пошагово отлаживаю этот код то когда я захожу на строчку textBox.Text =...

Изменить значение Text нужного TextBox в конструкции For
Вопрос в шапке, а пытался сделать вот так. int array = new int; textBox1.Text = string.Empty; textBox2.Text = string.Empty; ...

11
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.06.2018, 22:57
А по имени нельзя обратиться разве (в XAML: x:Name="_textBox")?

Добавлено через 5 минут
В общем, скинь XAML и Code behind окна. Я наизусть не помню, что там как, но думаю, что разберусь.
0
0 / 0 / 0
Регистрация: 11.05.2016
Сообщений: 12
09.06.2018, 23:18  [ТС]
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Window x:Class="WpfExternBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfExternBinding"
        Title="MainWindow" Height="422" Width="581">
    <Grid >
        <Grid.RowDefinitions>
            <RowDefinition Height="32*"/>
            <RowDefinition Height="291*"/>
            <RowDefinition Height="69*"/>
        </Grid.RowDefinitions>
        <Frame Margin="3,0" Source="Page2.xaml" Grid.Row="1"/>
 
        <TextBox Text="" x:Name="txt" Grid.Row="2"/>
    </Grid>
</Window>

XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Page x:Class="WpfExternBinding.Page2"
      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:WpfExternBinding"
      mc:Ignorable="d" 
      d:DesignHeight="291" d:DesignWidth="581"
      Title="Page2">
    <Grid>
                <local:Palitra x:Name="block"  MouseDown="block_MouseDown" 
Source="block.png" Style="{StaticResource ImageWithGlow}" 
Height="56.667" Canvas.Left="16.834" Canvas.Top="25" Width="94" 
Margin="11.332,25.382,230.167,208.95"/>
    </Grid>
</Page>
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
09.06.2018, 23:49
Добавлено через 7 минут
Через NuGet подключи библиотеку MvvmLight

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Windows;
using GalaSoft.MvvmLight.Messaging;
 
namespace WpfExternBinding
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
            Messenger.Default.Register<NotificationMessage<string>>(this, (message) => { txt.Text = message.Content; });
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _frame.Navigate(new Uri("Page2.xaml", UriKind.RelativeOrAbsolute), this);
        }
 
        public void SetText(string text)
        {
            txt.Text = text;
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System.Windows.Controls;
using GalaSoft.MvvmLight.Messaging;
 
namespace WpfExternBinding
{
    /// <summary>
    /// Логика взаимодействия для Page2.xaml
    /// </summary>
    public partial class Page2 : Page
    {
        public Page2()
        {
            InitializeComponent();
        }
 
        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Messenger.Default.Send(new NotificationMessage<string>(this, "text text text", "..."));
        }
    }
}
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<Window x:Class="WpfExternBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:local="clr-namespace:WpfExternBinding"
        Title="MainWindow"
        Width="581"
        Height="422"
        Loaded="Window_Loaded">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition Height="32*" />
            <RowDefinition Height="291*" />
            <RowDefinition Height="69*" />
        </Grid.RowDefinitions>
        <Frame x:Name="_frame"
               Grid.Row="1"
               Margin="3,0" />
 
        <TextBox x:Name="txt"
                 Grid.Row="2"
                 Text="" />
    </Grid>
</Window>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<Page x:Class="WpfExternBinding.Page2"
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
      xmlns:local="clr-namespace:WpfExternBinding"
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
      Title="Page2"
      d:DesignHeight="291"
      d:DesignWidth="581"
      mc:Ignorable="d">
    <Grid>
        <Button Width="75"
                Margin="292,101,0,0"
                HorizontalAlignment="Left"
                VerticalAlignment="Top"
                Click="Button_Click"
                Content="Button" />
    </Grid>
</Page>
Добавлено через 1 минуту
Уверен, есть другие способы с передачей данных между страницами без использования всяких посредников. К сожалению, сейчас не смогу с таким способом помочь.
1
26 / 26 / 7
Регистрация: 27.06.2015
Сообщений: 188
10.06.2018, 02:45
Через интерфейс я бы менял. Без всяких mvvmligvt.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.06.2018, 12:45
LEX38RUS, я бы тоже, если бы знал как
0
26 / 26 / 7
Регистрация: 27.06.2015
Сообщений: 188
10.06.2018, 13:05
Да по сути вариантов куча.
Аналогично и вашему описанию можно просто подписаться на событие и изменять текст в текстбоксе без доп пакетов.

Добавлено через 3 минуты
И да. Не забыть еще к свойству текс прибиндить свойство.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.06.2018, 13:12
В общем, автору почитать:
Служба навигации
WPF Navigation

Добавлено через 2 минуты
Мэтью Мак-Дональд - WPF Windows Presentation Foundation в .NET 4.0 с примерами на C# 2010 для профессионалов (год и версия могут отличаться, у меня такая есть книга просто).
Глава 24. Страницы и навигация.

Добавлено через 1 минуту
Цитата Сообщение от LEX38RUS Посмотреть сообщение
И да. Не забыть еще к свойству текс прибиндить свойство.
Вот это не понял совсем

Добавлено через 1 минуту
Вообще можно просто создать синглтон и обращаться к нему, как к посреднику, хранящему результат работы на какой-то странице.
0
26 / 26 / 7
Регистрация: 27.06.2015
Сообщений: 188
10.06.2018, 13:17
Да сам не понял че написал когда прочитал уже.)) Ща вообщем код скину.
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.06.2018, 13:20
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
using System;
using System.Windows;
 
namespace WpfExternBinding
{
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
 
            Repository.Instance.TextChanged += Repository_TextChanged;
        }
 
        private void Repository_TextChanged(string text)
        {
            txt.Text = text;
        }
 
        private void Window_Loaded(object sender, RoutedEventArgs e)
        {
            _frame.Navigate(new Uri("Page2.xaml", UriKind.RelativeOrAbsolute), this);
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
using System.Windows.Controls;
 
namespace WpfExternBinding
{
    public partial class Page2 : Page
    {
        public Page2()
        {
            InitializeComponent();
        }
 
        private void Button_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            Repository.Instance.Text = "Magic!";
        }
    }
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
using System;
 
namespace WpfExternBinding
{
    public class Repository
    {
        private string _text;
        private static volatile Repository _instance;
 
        private static readonly object _sync = new object();
 
        public static Repository Instance
        {
            get
            {
                if (_instance == null)
                {
                    lock (_sync)
                    {
                        if (_instance == null)
                        {
                            _instance = new Repository();
                        }
                    }
                }
                return _instance;
            }
        }
 
        public string Text
        {
            get { return _text; }
            set
            {
                _text = value;
                OnTextChanged(value);
            }
        }
 
        public event Action<string> TextChanged;
 
        protected void OnTextChanged(string text)
        {
            TextChanged?.Invoke(text);
        }
    }
}
1
26 / 26 / 7
Регистрация: 27.06.2015
Сообщений: 188
10.06.2018, 13:21
Ну типа этого
0
Эксперт .NET
 Аватар для Casper-SC
4434 / 2094 / 404
Регистрация: 27.03.2010
Сообщений: 5,657
Записей в блоге: 1
10.06.2018, 13:26
LEX38RUS, я понял. Можно создать посредника, в котором будет DependencyProperty и к нему прибиндиться в главном окне, будет проще тем, что там не будет событий, на которые нужно подписываться.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
10.06.2018, 13:26
Помогаю со студенческими работами здесь

Изменить ссылку в HttpWebRequest, добавив значение TextBox
Такая ситуация, нужно изменить ссылку. добавить к ней текст из текстбокса request =...

Сравнить несколько TextBox, найти наибольший и изменить его значение
Есть несколько TextBox, куда пользователь вводит свои значения. Я пытаюсь сделать такой цикл: - по введенным значениям происходит расчет...

База FB: Необходимо поле таблицы типа Varchar изменить на значение из TextBox
Необходимо поле таблицы типа Varchar изменить на значение из текстбокса. Явного преобразования, как понял, нет. Помогите, спасибо.

Изменять значение в одном TextBox-e изменяя значение в другом TextBox-e
Дорого времени стуок. Написал небольшую прогу, но на последнем этапе возникли небольшие загвоздки. Вот сама прога: Option Explicit ...

есть заполненная таблица в базе данных и textBox, как изменить данные таблицы данными из textBox??
есть заполненная таблица в базе данных и textBox, как изменить данные таблицы данными из textBox? начал так: private void...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru