Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > .NET > WPF, UWP, WinRT, XAML
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 10.04.2012, 22:31   #1
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
Репутация: 10
По умолчанию WPF LisBox Selectionchanged to MVVM

Никак не могу понять как должным образом преобразовать код.
У меня есть листбокс, привязанная коллекция и текстбокс, где отображается атрибут выбранного элемента листбокса.
вот как это выглядело вначале:

Код:
Код:

listBox1.DataContext = globalUserList;

где globalUserList типа IList<UserType>
Код:
Код:

   private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            textBox1.Text = ((UserType) listBox1.SelectedItem).Description;
        }

Код:
Код:

<ListBox Margin="-1,98,0,0" Name="listBox1" ItemsSource="{Binding}" ItemTemplate="{DynamicResource UserTemplate}" HorizontalAlignment="Left" Width="173" SelectionChanged="listBox1_SelectionChanged" >        	
            <ListBox.ContextMenu>
                <ContextMenu Name="listmenu">
                    <MenuItem Header="Удалить" Click="DeleteUserType"></MenuItem>
                </ContextMenu>
            </ListBox.ContextMenu>
        </ListBox>

 <TextBox Height="23" HorizontalAlignment="Right" Margin="0,98,28,0" Name="textBox1" VerticalAlignment="Top" Width="120"  />

При таком раскладе все работает и отображается.
Но как только я переделываю в MVVM, список отображается, но в текстбоксе атрибут нет.
вот код:
Код:
Код:

 private DelegateCommand listItemSelected;

        public ICommand ListItemSelectedCommand
        {
            get
            {
                if (listItemSelected == null)
                {
                    listItemSelected = new DelegateCommand(ListItemSelected);
                      
                }
                return listItemSelected;
            }
        }

        private void ListItemSelected()
        {
            this.UserControlType.textBox1.Text = ((UserType) this.UserControlType.listBox1.SelectedItem).Description;
        }

Код:
Код:

<ListBox Margin="-1,98,0,0" Name="listBox1" 
                 ItemsSource="{Binding}" 
                 ItemTemplate="{DynamicResource UserTemplate}" 
                     SelectedItem="{Binding ListItemSelectedCommand}"                 
                 HorizontalAlignment="Left" Width="173" 
                 >           
            <ListBox.ContextMenu>
                <ContextMenu Name="listmenu">
                    <MenuItem Header="Удалить" Command="{Binding DeleteUserTypeCommand}"></MenuItem>
                </ContextMenu>
            </ListBox.ContextMenu>
        </ListBox>

Нике вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[C# + WPF] Отлов нажатий клавиш, хуки, горячие клавиши в проекте WPF Casper-SC WPF, UWP, WinRT, XAML 3 03.03.2017 16:00
listbox.SelectionChanged in mvvm Нике C# (си шарп) 6 11.04.2012 18:24
Сравнить значение из lisbox -=Virus=- Общие вопросы Delphi 2 28.09.2010 21:17
класс Screen в WPF. Есть ли такой? [?] Не добавлять же сборку Forms в WPF Casper-SC Общие вопросы .NET 2 30.07.2010 15:10
Lisbox to Word Val Rubis Microsoft Office Word 1 13.01.2010 02:10


17:14.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru