powered by simpleCommunicator - 2.0.50     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Передать несколько значений между окнами.
24 сообщений из 24, страница 1 из 1
Передать несколько значений между окнами.
    #39165824
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПРиветствую!
Как реализовать, чтобы 2 разных параметра использовались из первого окна в другом:
Сейчас так сделал, но так не нравится, когда все в одной строке передается, хочется, чтобы каждое значение было в разных переменных и раскидать их по разным lable(Combobox1.Text & Combobox2.Text):
первая форма:
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (Combobox2.SelectedItem != null)
            {
                Window2 tb = new Window2(Combobox1.Text + "'  и таблицей:  '" + Combobox2.Text);
                tb.Show();
               
            }
            else
            {
                MessageBox.Show("Выберите таблицу");
            }
        }


вторая форма куда уходит:
Код: c#
1.
2.
3.
4.
5.
6.
     public Window2(string s)
        {
           InitializeComponent();

            Lable1.Content = "Вы работаете с базой:  '" + s + "'";
        }
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39165838
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
заходим в google и ищем:
Window
DataContext MVVM WPF ООП
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39165896
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

понял свои ошибки, а именно - все не так!!!:)
лучше использовать сразу тот, или иной фрэймворк, или пока на голом WPF MVVM учиться?
И еще вопрос, MVVM pattern насколько облегчает житие бытие, или это просто еще шаг вперед?
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39165943
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanya3624чтобы 2 разных параметра использовались из первого окна в другом:
Я же рекомендовал прочитать главу учебника про параметры метода.

Палларис спрашивал, не издеваешься ли ты, когда спрашиваешь, как передать параметр в метод.

А ты опять и опять грызешь кактус. Это так сложно прочитать первые несколько глав учебника по C#?
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39165944
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanya3624, MVVM pattern насколько облегчает житие бытие, или это просто еще шаг вперед?почему ИЛИ? И то и другое.
Но пока ты пишешь mishanya3624
Код: c#
1.
Lable1.Content = "Вы работаете с базой:  '" + s + "'";

MVVM тебе будет только мешать.
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166146
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что не так делаю:
Window1.xaml , где хочу видеть textbox ы из MainWindow
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
<Window x:Class="WpfApplication1.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:local="clr-namespace:WpfApplication1"
        Title="Window1" Height="300" Width="300">
    <Window.DataContext>
        <local:MainWindow/>
    </Window.DataContext>
    <Grid>
        <Label Content="{Binding Path=ss}" HorizontalAlignment="Left" Margin="58,33,0,0" VerticalAlignment="Top" />
        <Label Content="{Binding Path=sss}" HorizontalAlignment="Left" Margin="58,86,0,0" VerticalAlignment="Top"/>

    </Grid>
</Window>


Вот сам MainWindow:
Код: 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.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace WpfApplication1
{
    /// <summary>
    /// Логика взаимодействия для MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public string ss { get; set; }
        public string sss { get; set; }
        public MainWindow()
        {
            InitializeComponent();
            ss = text1.Text;
            sss = text2.Text;
        }
    }
}
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166147
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Один из вариантов- ты можешь передать два параметра через параметры конструктора.

Ну только не спрашивай пожалуйста, что такое параметры и что такое конструктор. Ты это должен знать раньше, чем начать писать любую программу.
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166148
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanya3624
Код: xml
1.
Margin="58,33,0,0"

это тоже плохой стиль. Дизайн формы в WPF создается с помощью панелей компоновки. Абсолютное позиционирование элементов не используется почти никогда.
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166382
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Margin - это относительное, просто он размещал их через дизайнер форм. Я его в своей VS вообще отключил, только память жрет и толку 0
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166409
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman MejtesShocker.Pro,

Margin - это относительное, просто он размещал их через дизайнер форм. Я его в своей VS вообще отключил, только память жрет и толку 0Да, практически, абсолютное - почти что заданы Top и Left, как в WinForms. Ты бы не стал так размещать метки, загнал бы их как минимум в StackPanel, правильно?

Да, зря они дизайнер такому научили, теперь он новичков плохому учит.
Я не отключал дизайнер, поглядываю на результат, но пишу, конечно, XAML.
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166709
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

просто в 99% случаев я в XAML работаю с DictionaryResources в которых находятся шаблоны и стили для в рамках данного файла.
А дизайнер не поддерживает DataTemplate'ы, хотя что мешает загнать в дизайнере это все в ContentPresenter мне не понятно.
+ когда он не нужен, а я хочу поменять размер окна с кодом, часто цеплялся за Splitter дизайнера, но в 2015 сделали возможность его полностью выпилить.
Еще дизайнер может зависать отлично и ресурсы жрет непомерно
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166785
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
так, :

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   public partial class Window1 : Window
    {
        public string ss;
        public Window1()
        {
          
            InitializeComponent();
            combo1();
            Combobox2.IsEnabled = false;
            ss = Combobox2.Text;
        }
     }


еще:

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
 public partial class Window2 : Window
    {
       // public string dd;
        public Window2()
        {
            Window1 w1 = new Window1();
            InitializeComponent();
            
             Lable1.Content = w1.ss;
            
        }
     
        
    }


Ну все же логично!!!!!
должно же передаваться...
Но передается только тогда, когда я в замле Window1 прописываю у комбокса свойство Text="kjgvdfsjkbvglsjd", если я пишу ему TExt = "{Binding Pach=ss}" то значение не прилетает
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166804
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ерунду написал, чиатй дальше про MVVM и RelayCommand , NavigationService и тд и тп
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166808
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
{Binding} - это MarkupExtension и работает он только из XAML кода, через XAMLReader.
То есть в CodeBehind вы не можете для свойства Text присвоить значение {Binding BlaBlaBla} или любой другой MarkupExtension.
Свойству Text нужно присвоить значение соответствующего этому свойству типа (в данном случае этот тип String).
Для того, чтоб назначить связывание свойста через код, необходимо использовать метод

FrameworkElement.SetBinding(DependencyProperty, Binding);
или через
BindingOperations.SetBinding(DependencyObject, DependencyProperty, Binding)
(так как DependencyObject не имеет метода SetBinding, но может участвовать в связывании)
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166812
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

да ему это рано , ему надо понять концепцию. наверняка одной моделью для 2-х окон можно в его случае обойтись, просто навигацию правильно сделать
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39166914
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
голова моя бедовая :((
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39167138
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
   public void Button_Click(object sender, RoutedEventArgs e)
        {

            NavigationService.Navigate(new Uri("/Window2.xaml?UserString=" + Combobox1.Text, UriKind.Relative));
        }



Ошибка 1 Для нестатического поля, метода или свойства "System.Windows.Navigation.NavigationService.Navigate(System.Uri)" требуется ссылка на объект G:\Git\Projects\p_record\p_record\Window1.xaml.cs 93 13 p_record

хелпуйте
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39167142
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: c#
1.
2.
3.
4.
5.
   public  void Button_Click(object sender, RoutedEventArgs e)
        {
            NavigationService nav = NavigationService.GetNavigationService(this);
            nav.Navigate(new Uri("/Window2.xaml?UserString=" + Combobox1.Text, UriKind.Relative));
        }



так при событии при нажатии на кнопку ругается, что {"Ссылка на объект не указывает на экземпляр объекта."}
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168254
Фотография @k@DElpher
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtes,

Было бы интересно глянуть. Да и вообще на XAML Guidelines, находил пару интересных документов на эту тему. Особенно интересно, когда приложение модульное, и соответственно много проектов (у нас основные стили прям в App.xaml подключаются, но некоторая путаница и дублирование уже ощущается).
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168483
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
еще 1 вопрос профана,
если у меня в классе 2 конструктора с одинаковыми именами - это не есть гуд?
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168488
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mishanya3624,

вам бы учебник по C# прочесть....
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168805
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
уже:)
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168823
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Быстро ))
И что там про перегрузку конструкторов? ))
...
Рейтинг: 0 / 0
Передать несколько значений между окнами.
    #39168844
mishanya3624
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
"уже" в смысле читаю:)
так можно делать, главное, чтобы отличалась сигнатура конструктора.
...
Рейтинг: 0 / 0
24 сообщений из 24, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / Передать несколько значений между окнами.
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]