WPF DisplayMemeberPath в ListBox - PullRequest
       10

WPF DisplayMemeberPath в ListBox

1 голос
/ 03 марта 2010

У меня проблема со списком wpf.Моя проблема заключается в том, что, когда я добавляю элементы в список с помощью элементов списка и задаю путь к отображаемому члену, ничего не отображается.Я хочу использовать ListBoxItem или что-то похожее на явно заданную подсказку для каждого элемента.

Заранее спасибо.

namespace WpfApplication1
{
    /// <summary>
    /// Interaction logic for Window2.xaml
    /// </summary>
    public partial class Window2 : Window
    {
        public Window2()
        {
            InitializeComponent();

            listbox1.DisplayMemberPath = "S";

            List<ListBoxItem> l = new List<ListBoxItem>();
            l.Add(new ListBoxItem() { Content = new Test() { S = "test1", I = 1 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test2", I = 2 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test3", I = 3 } });
            l.Add(new ListBoxItem() { Content = new Test() { S = "test4", I = 4 } });
            foreach (var item in l)
            {
                listbox1.Items.Add(item);
            }

        }
    }

    public class Test
    {
        public string S { get; set; }
        public int I { get; set; }
    }
}

1 Ответ

1 голос
/ 03 марта 2010

Вы добавляете ListBoxItems в свой ListBox, а ListBoxItem не имеет свойства с именем "S", поэтому DisplayMemberPath не будет работать.

Добавляйте свои собственные классы напрямую:

listBox.Items.Add(new Test { S = "Hello World" });

Как правило, вам не нужно использовать ListBoxItems непосредственно в WPF - просто привяжите ваш ListBox непосредственно к пользовательской коллекции, и ListBoxItems будет создан для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...