Форум программистов, компьютерный форум, киберфорум
Наши страницы
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
nonTrivial
28 / 2 / 1
Регистрация: 02.11.2018
Сообщений: 40
1

Доступ к элементу через другое окно

13.07.2019, 10:40. Просмотров 1672. Ответов 8
Метки нет (Все метки)

Как получить доступ к элементу через другое окно (станицу)? Посмотрел ответ в этой теме (и нескольких других), и там все как-то замудренно.
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2019, 10:40
Ответы с готовыми решениями:

Переход в другое окно
Дайте код на C#/WPF для перехода в другое окно (не на другую страницу, а окно). Спасибо заранее)

Как перейти в другое окно?
Доброго времени суток! Проблема такая: я совсем еще новичок в WPF и С#. Мне нужно перейти другое...

Передать информацию в другое окно.
Уважаемые знатоки WPF, помогите пожалуйста новичку дописать код. Заранее спасибо. Это основная...

Доступ к элементу ListBox
Добрый день. Помогите разобраться. Есть такой вот ListBox (на самом деле он сложнее, но мне...

Доступ к элементу шаблона
Стиль с шаблоном в котором есть Image, например с x:Name="image" Загрузить Image из кода можно: ...

8
Kazbek17
https://vk.com/a.tsarev83
295 / 185 / 85
Регистрация: 06.02.2012
Сообщений: 660
13.07.2019, 11:06 2
Лучший ответ Сообщение было отмечено nonTrivial как решение

Решение

nonTrivial,
В форме 2 устанавливаем в xaml
XML
1
<TextBox x:Name="textBox1" x:FieldModifier="public"/>
В форме1 коде пишем
C#
1
2
3
            Window2 form2 = new Window2();
            form2.textBox1.Text = "Какой-то текст";
            form2.ShowDialog();
1
nonTrivial
28 / 2 / 1
Регистрация: 02.11.2018
Сообщений: 40
13.07.2019, 11:15  [ТС] 3
Но это создание нового окна. Это не то.

Добавлено через 1 минуту
**Мне нужно реализовать доступ к окну через страницу
0
Kazbek17
https://vk.com/a.tsarev83
295 / 185 / 85
Регистрация: 06.02.2012
Сообщений: 660
13.07.2019, 11:21 4
nonTrivial, я вас не понимаю. Я вам показал, как еще можно по другому обращаться?
0
13.07.2019, 11:21
nonTrivial
28 / 2 / 1
Регистрация: 02.11.2018
Сообщений: 40
13.07.2019, 11:23  [ТС] 5
Но это же не обращение, а создание нового окна. У меня изначально есть окно, когда я таким образом "обращаюсь", то создается (появляется) новое.
0
Kazbek17
https://vk.com/a.tsarev83
295 / 185 / 85
Регистрация: 06.02.2012
Сообщений: 660
13.07.2019, 11:32 6
nonTrivial, Емае я вам пример показал. У меня так же есть уже существующие окно, где размещен TextBox.
Хорошо если вам не нравится название моего Window2 то сделайте так
C#
1
2
3
Мое_существующие_Окно  окно = new Мое_существующие_Окно();
окно.textBox1.Text = "Какой-то текст";
окно.ShowDialog();
Добавлено через 1 минуту
Чтобы вызывать окно, вам в любом случае придется делать новый экземпляр этого окошка.
0
nonTrivial
28 / 2 / 1
Регистрация: 02.11.2018
Сообщений: 40
13.07.2019, 11:37  [ТС] 7
Я знаю. У меня создается дубликат моего же существующего окна. Мне окно не нужно вызывать, а редактировать или читать его элементы.
0
Элд Хасп
Модератор
2962 / 2122 / 719
Регистрация: 21.04.2018
Сообщений: 6,765
Записей в блоге: 2
13.07.2019, 11:53 8
Лучший ответ Сообщение было отмечено nonTrivial как решение

Решение

Цитата Сообщение от nonTrivial Посмотреть сообщение
Я знаю. У меня создается дубликат моего же существующего окна. Мне окно не нужно вызывать, а редактировать или читать его элементы.
Это в принципе неверно.
Конкретно трудно сказать как правильно сделать - для этого нужны детали задачи и реализации.

Но один из подходов. У окон есть общий контекст данных. Элементы первого окна привязаны для их изменения. Элементы второго окна привязаны к этим данным для реагирования на их изменения.

Добавлено через 1 минуту
Но ни как не должно быть, чтобы одно окно лезло в элементы другого окна.

Добавлено через 1 минуту
Цитата Сообщение от nonTrivial Посмотреть сообщение
Посмотрел ответ в этой теме
Так нельзя делать.
Это плохой пример.
1
Элд Хасп
Модератор
2962 / 2122 / 719
Регистрация: 21.04.2018
Сообщений: 6,765
Записей в блоге: 2
13.07.2019, 12:36 9
Вот пример реализации статического канала для сообщений.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
    public class ChanelMessage : OnPropertyChangedClass
    {
        public static ChanelMessage Exemplar { get; } = new ChanelMessage();
        public static ChanelMessage GetExemplar() => Exemplar;
        private ChanelMessage()
        {
 
        }
 
        private string text;
 
        public string Text { get => text; set { text = value; OnPropertyChanged(); } }
    }
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Window x:Class="CyberForum.Win1" Title="Win1"
        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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:CyberForum"
        mc:Ignorable="d" 
        Height="450" Width="800">
    <Window.Resources>
        <ObjectDataProvider x:Key="ChanelMessage" ObjectType="{x:Type local:ChanelMessage}" MethodName="GetExemplar"/>
    </Window.Resources>
    
    <Grid>
        <TextBox Text="{Binding Text, Source={StaticResource ChanelMessage}, UpdateSourceTrigger=PropertyChanged}"/>
    </Grid>
</Window>
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<Window x:Class="CyberForum.Win2" Title="Win2" 
        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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:CyberForum"
        mc:Ignorable="d"
        Height="450" Width="800">
    <Window.Resources>
        <ObjectDataProvider x:Key="ChanelMessage" ObjectType="{x:Type local:ChanelMessage}" MethodName="GetExemplar"/>
    </Window.Resources>
 
    <Grid>
        <TextBlock Text="{Binding Text, Source={StaticResource ChanelMessage}}"/>
    </Grid>
</Window>
При вводе в TextBox первого окна во втором окне TextBlock тоже отображает эту же информацию.
1
13.07.2019, 12:36
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.07.2019, 12:36

Открыть другое окно внутри текущего окна
И так из названия думаю понятно, мне нужно открыть окно внутри окна, есть MainWindow, и...

Добавление уже существующего grid-a в другое окно
у меня есть grid,на нем метки главное окно,я создал еще одно окно wpf и хочу в него добавить мой...

XML. Получить доступ к элементу по ID
Имеется следующая структура: &lt;XamlDocument&gt; &lt;Paragraph&gt; &lt;Sentence&gt; &lt;Word ID = string&gt; ......


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru