Id текущего элемента Листбокса
-
22 апреля 2012 г. 6:03
Всем привет!
У меня есть Listbox и я заношу в него записи из базы данных. По одной записи в каждый эксземпляр листбокса.
Вообще, класс записи содержит много элементов, но я сейчас буду говорить только о двух из них - о (String Text и Int id)
Кстати, класс называется Task и вот так я заношу элемент Text в Листбокс:
Task tasks = new Task(); for (int i = 0; i < tasks.Count(); i++) { string Text = tasks[i].Text; dataSource.Add(new Taskonlistbox() { Text = Text}); }Заносится и отображается всё нормально. Как видите, ID я не передаю, только Text.
Я хочу передать Id в другую форму примерно вот так:
private void TextBlock_DoubleTap(object sender, System.Windows.Input.GestureEventArgs e) { int id = (listBox1.SelectedItem as Taskonlistbox).Id; NavigationService.Navigate(new Uri("/EditTask.xaml?currentID=" + id, UriKind.Relative)); }Но, естественно, это не работает, потому что Id в экземпляр листбокса я не передаю, и не знаю как это сделать и куда его засунуть.
Происходит переход в другую форму, и выскакивает ошибка на том месте, где программа по этому самому непереданному Id пытается вытянуть запись из БД.
Пробовал биндить Id на имя экземпляра листокса: Name = "{Binding Id}", но, опять же, ничего не получалось.
Не подскажете что делать? Заранее спасибо.
Все ответы
-
23 апреля 2012 г. 12:54
Здравствуйте.
Если вы нашли решение своей проблемы - то лучше будет не удалять топик, а выложить решение. Так вы поможете тем людям, кто может столкнуться с подобной проблемой и будет искать решение. Это полезней и лучше, чем удалять топик, если вам не составит труда рассказать решение.
Спасибо.
Для связи [mail]
- Помечено в качестве ответа Abolmasov DmitryMicrosoft Community Contributor 23 апреля 2012 г. 12:54
-
24 апреля 2012 г. 4:43
А зачем все усложнять?
//Инициализирую новый экземпляр листбокса, для примера ListBox lbTasks = new ListBox(); Task tasks = new Tasks(); //Задаю источник элементов для листбокса lbTasks.ItemSource = tasks;
Далее создать шаблон представления элементов списка (ItemTemplate), в котором указать как необходимо отображать данные.
Теперь код
private void TextBlock_DoubleTap(object sender, System.Windows.Input.GestureEventArgs e) { int id = (listBox1.SelectedItem as Taskonlistbox).Id; NavigationService.Navigate(new Uri("/EditTask.xaml?currentID=" + id, UriKind.Relative)); }
будет работать.
- Предложено в качестве ответа Viktor Borisov 24 апреля 2012 г. 4:44

