Форум программистов, компьютерный форум, киберфорум
C#: WPF, UWP и Silverlight
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
5 / 3 / 2
Регистрация: 02.07.2017
Сообщений: 112

Из xaml в codebehind

02.12.2022, 16:51. Показов 1567. Ответов 26
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет.

Помогите перевести в код С# подключение команды в xaml:
XML
1
2
3
4
5
6
7
8
9
10
<Grid DataContext="{Binding VM2}">
<TextBox Text="{Binding MyText}">
      <TextBox.InputBindings>
      <KeyBinding Command="{Binding Path=GetTextFromTextboxCommand}"
                        CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}}" Key="Enter"/>
            <KeyBinding Command="{Binding Path=GetTextFromTextboxCommand}"
                        CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type TextBox}}}" Key="Tab"/>
      </TextBox.InputBindings>
</TextBox>
</Grid>
Добавлено через 13 минут
клас MainVM
C#
1
2
3
4
5
6
7
8
9
10
11
12
public class MainVM
    {
        public VM1 vm1 { get; set; }
        public VM2 vm2 { get; set; }
        public VM3 vm3 { get; set; }
        public MainViewModel()
        {
            vm1 = new VM1();
            vm2 = new VM2();
            vm3 = new VM3();
        }
    }
команда "GetTextFromTextboxCommand" объявлена в VM2.

пытаюсь добиться таким путем в MainWindow.cs:
C#
1
2
3
4
5
6
7
8
var myVM = ((MainViewModels.MainVM)DataContext).VM2;
Binding myBinding = new Binding();
myBinding.RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, this.GetType(), 1);
myBinding.Path = new PropertyPath(nameof(VM2.GetTextFromTextboxCommand));
 
TextBox textBox = new TextBox();
textBox.Name = "tb_" + i;
textBox.SetBinding(TextBox.TextProperty, myBinding);
но получаю ошибку: Свойство "GetTextFromTextboxCommand" не было найдено в объекте типа "MainWindow"
З.Ы.: из xaml работает корректно

Добавлено через 51 минуту
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.12.2022, 16:51
Ответы с готовыми решениями:

Разное поведение стиля при заполнении ListBox в XAML и CodeBehind
Добрый день! Если стиль: &lt;Style x:Key=&quot;FocusVisual&quot;&gt; &lt;Setter Property=&quot;Control.Template&quot;&gt; ...

Вызов функции из mainWindow.xaml.cs в App.xaml.cs
Добрый день. Суть в следующем: имеется WPF-приложение для чтения QR-кодов. Эти коды передаются в БД. Планируется, что приложение будет...

Передача обьекта xaml в другой обьект xaml
есть главное окно xaml &lt;Window x:Class=&quot;test.MainWindow&quot; ...

26
5 / 3 / 2
Регистрация: 02.07.2017
Сообщений: 112
06.12.2022, 20:24  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Всё верно?
Абсолютно
Цитата Сообщение от Элд Хасп Посмотреть сообщение
И назовите его как-то по нормальному
Тут накидал на скорую руку, что бы вопрос описать.
А в проекте по нормальному назван (я так думаю )
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
06.12.2022, 20:29
VM, соответственно, такая:
C#
1
2
3
4
5
6
7
8
9
    public class MainViewModel : ViewModelBase
    {
        public ObservableCollection<Item> Items { get; } = new ObservableCollection<Item>();
 
        public RelayCommand<Item> AddItem => GetCommand<Item>( item =>
        {
             // Какой-то код.
        });
    }
Добавлено через 2 минуты
Beginnner, а нет. Это команда обновления. В VM будет две команда добавления и обновления.

Добавлено через 52 секунды
А откуда будут браться данные для команды добавления?
0
5 / 3 / 2
Регистрация: 02.07.2017
Сообщений: 112
06.12.2022, 23:00  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
А откуда будут браться данные для команды добавления?
Не уверен, что понял вопрос.
Впринципе данные для добавления это и есть коллекция Items, выше указал в класе MainViewModel, правда теперь в нем отсутствует List<string> DescList
так реализуется добавление:
XML
1
2
3
<Button 
     ...
     Command="{Binding AddItem, Source={StaticResource vm}}" >
А после добавления оператор заполняет пустные элементы коллекции
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
07.12.2022, 00:27
Цитата Сообщение от Beginnner Посмотреть сообщение
Впринципе данные для добавления это и есть коллекция Items
Чего и куда добавляет эта команда?
Я думал она добавляет новый Item в коллекцию Items.
И, соответственно, для этого нового Item нужны данные.
0
5 / 3 / 2
Регистрация: 02.07.2017
Сообщений: 112
07.12.2022, 00:32  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Я думал она добавляет новый Item в коллекцию Items.
И, соответственно, для этого нового Item нужны данные.
Совершенно верно.
0
Модератор
Эксперт .NET
 Аватар для Элд Хасп
16166 / 11286 / 2892
Регистрация: 21.04.2018
Сообщений: 33,177
Записей в блоге: 2
07.12.2022, 00:36
Цитата Сообщение от Beginnner Посмотреть сообщение
Совершенно верно.
Так откуда берутся эти новые данные?
0
5 / 3 / 2
Регистрация: 02.07.2017
Сообщений: 112
07.12.2022, 19:26  [ТС]
Цитата Сообщение от Элд Хасп Посмотреть сообщение
Так откуда берутся эти новые данные?
Оператор получает шифровку и вводит данные в созданные элементы коллекции.

Т.к. вопрос темы решен предлагаю ее закрыть.
Спасибо за помощь!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.12.2022, 19:26

В самом XAML'е основного общего проекта сделать ссылку на XAML с частного решения
Доброго времени суток. Подскажите, пожалуйста. Как можно подменить xaml xaml'ом, не знаю как правильно это выразить, поэтому поиск в...

переделать из xaml в windows form (xaml не изучал)
мне нужна простая программа для просмотра изображений, я вот нашел исходник но он написан с помощь xaml а мне надо в windows form, помогите...

Взаимодействие MainWindow.xaml.cs <->App.Xaml.cs
Я попробовал и, безусловно, оценил удобство и простоту использования WPF, поначалу казавшийся мне сложной конструкцией. Я, конечно,...

Доступ к свойству VM из CodeBehind
Всем привет товарищи! Возник вопрос - можно ли как-то получить доступ из CodeBehind окна к свойству VM этого окна? Если бы DataContext...

Бесплaтный хoстинг с пoддержкoй Codebehind?
ктo-нибудь знaет? (csharp)


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

Или воспользуйтесь поиском по форуму:
27
Ответ Создать тему
Новые блоги и статьи
Генератор паролей
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе. Самым главным критерием для меня было создание паролей, в котором отсутствуют знаки: | 1 l I Обработка содержит реквизиты: -. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
После закрытия оутлука продолжает висеть процесс в диспетчере задач
Maks 27.10.2026
С недавнего времени в продакшене возникла проблема: при закрытии оутлука в диспетчере задач продолжал висеть процесс outlook. exe. Проблема возникла после установки MS Office 2021 LTSC на машинах, под. . .
Baragoz - DPS/HPS бот для WoW 3.3.5a, многоязычный
AmbA 26.10.2026
Хотите ещё ботов? У меня есть один! А я пока отдохну от него. https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=12062&stc=1&d=1793007952 Инструкция внутри. https:/ / youtu. be/ VpfFZSUDGnQ. . .
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru