Как я могу привязать данные строк к ListBox в WPF / WP7?

Я пытаюсь связать список строковых значений со списком, чтобы их значения были перечислены по строкам. Сейчас я использую это:

         

Но я не знаю, что я должен помещать в текстовый блок вместо Id , поскольку все они являются строковыми значениями, а не пользовательскими classами.

Также он жалуется, что не нужно находить имена персонажей, когда у меня есть это внутри MainPage, как MainPage.PersonNames.

Я установил контекст данных:

 DataContext="{Binding RelativeSource={RelativeSource Self}}" 

Я делаю это неправильно?

Если просто указать, что ваш ItemsSource связан следующим образом:

 YourListBox.ItemsSource = new List { "One", "Two", "Three" }; 

Ваш XAML должен выглядеть так:

          

Обновить:

Это решение при использовании DataContext. Следующий код – это viewmodel, который вы перейдете к DataContext страницы и настройке DataContext:

 public class MyViewModel { public List Items { get { return new List { "One", "Two", "Three" }; } } } //This can be done in the Loaded event of the page: DataContext = new MyViewModel(); 

Теперь ваш XAML выглядит так:

          

Преимущество этого подхода состоит в том, что вы можете поместить в class MyViewModel намного больше свойств или сложных объектов и извлечь их в XAML. Например, чтобы передать объекты List of Person:

 public class ViewModel { public List Items { get { return new List { new Person { Name = "P1", Age = 1 }, new Person { Name = "P2", Age = 2 } }; } } } public class Person { public string Name { get; set; } public int Age { get; set; } } 

И XAML:

           

Надеюсь это поможет! 🙂

Вы должны показать нам код для имен пользователей, и я не уверен, я понимаю ваш вопрос, но, возможно, вы хотите связать его следующим образом:

  

или

  

Это будет привязано к текущему элементу в списке. (Предполагая, что имена пользователей – это список строк). В противном случае вы увидите имя classа в списке

Если источник элементов перечислим как строковые записи, используйте следующее:

  

Вы можете использовать этот синтаксис для любого объекта. Как правило, метод ToString () будет вызываться для получения значения. Это во многих случаях очень удобно. Но будьте осторожны, что уведомление об изменении не произойдет.

Это можно сделать без явного определения элемента управления TextBlock как части вашего ListBox (если вы не хотите лучшего форматирования). Уловкой для получения привязки к триггеру является использование ObservableCollection вместо List

Window1.xaml

  

Window1.xaml.cs

 public Window1() { InitializeComponent(); DataContext = this; // Need to initialize this, otherwise you get a null exception MyListViewBinding = new ObservableCollection(); } public ObservableCollection MyListViewBinding { get; set; } // Add an item to the list private void Button_Click_Add(object sender, RoutedEventArgs e) { // Custom control for entering a single string SingleEntryDialog _Dlg = new SingleEntryDialog(); // OutputBox is a string property of the custom control if ((bool)_Dlg.ShowDialog()) MyListViewBinding.Add(_Dlg.OutputBox.Trim()); } 
  • Перетаскивание из источника данных в окно WPF не работает
  • ItemsControl с несколькими DataTemplates для viewmodel
  • Image UriSource и привязка данных
  • Управление несколькими выборами с помощью MVVM
  • Почему привязка данных WPF к исключению ласточки?
  • Похоже, что привязки данных не обновляются
  • Каковы различные режимы привязки WPF?
  • Привязка OneWayToSource от свойства readonly в XAML
  • Заполнить Combobox из базы данных
  • WPF привязка к локальной переменной
  • WPF привязка данных к интерфейсу, а не к фактическому объекту - возможность литья?
  • Interesting Posts

    Где Linux размещает сообщения о загрузке?

    Ошибка отражения при попытке доступа к Microsoft.Phone.Media.Extended

    Как установить прокси-сервер по умолчанию для использования учетных данных по умолчанию?

    Java Reflection: как получить имя переменной?

    Получение подматрицы из существующего массива

    Как объединить цвета, стиль и легенды формы в ggplot

    Битфилд-манипуляция в C

    В чем разница между методами getRequestURI и getPathInfo в HttpServletRequest?

    С двумя мониторами можно ли иметь 1 экран в режиме рабочего стола и один экран, показывающий экран запуска?

    Запустить .jar из пакетного файла

    Ограничить количество строк для UITextview

    Какой метод следует использовать для ручной загрузки моего AngularJS?

    Ошибка получения родительского элемента для элемента: ресурс не найден, который соответствует указанному имени после обновления до AppCompat v23

    Сообщение об ошибке при запуске терминала

    Установить gem для старого ruby ​​1.8 на Mac OS X 10.9 Maverics

    Давайте будем гением компьютера.