Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > C# (си шарп)
Регистрация

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

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.04.2012, 17:07   #1
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
По умолчанию listbox.SelectionChanged in 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>
Нике вне форума Ответить с цитированием
Старый 10.04.2012, 18:44   #2
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

А привязка данных есть?
=master= вне форума Ответить с цитированием
Старый 10.04.2012, 21:47   #3
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
По умолчанию

привязка чего к чему?
Нике вне форума Ответить с цитированием
Старый 10.04.2012, 22:48   #4
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

ну биндите то вы к чему? команд где прописан?
=master= вне форума Ответить с цитированием
Старый 10.04.2012, 22:58   #5
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
По умолчанию

listBox1.DataContext = globalUserList;
вот листбокс. а текст бокс в ListItemSelected().
Нике вне форума Ответить с цитированием
Старый 11.04.2012, 00:49   #6
=master=
Форумчанин
 
Регистрация: 26.03.2012
Сообщений: 665
По умолчанию

а ListItemSelectedCommand где описан?
=master= вне форума Ответить с цитированием
Старый 11.04.2012, 18:24   #7
Нике
Пользователь
 
Регистрация: 24.09.2010
Сообщений: 16
По умолчанию

в ModelWiew. И еще, листбокс и текст бокс находятся на разный фреймах
Нике вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
listBox c# tanek Помощь студентам 1 05.09.2011 09:08
Listbox sxcine Общие вопросы Delphi 3 20.08.2010 07:30
как добавить в listbox файлы(пишу с помощью bassplayer)(Listbox+opendialog=play) blackstersl Общие вопросы Delphi 11 09.06.2010 13:23
ListBox Witaliy Общие вопросы Delphi 10 27.04.2008 17:15
ListBox Rahim1993 Общие вопросы Delphi 3 15.01.2008 18:09