Привязка данных в коде позади C # - PullRequest
2 голосов
/ 27 июля 2010

У меня довольно простой вопрос:

У меня есть свойство People, тип которого List , а у Person есть Имя и Фамилия.Я хочу показать имя в моем listBoxPerson, и я хочу сделать операции привязки в коде позади - не хочу использовать свойство ItemsSource - вот мой фрагмент кода:

Binding userBinding = new Binding();
        userBinding.Source =People;
        userBinding.Path = new PropertyPath("Person.Name");
        listBoxPerson.SetBinding(ContentProperty, userBinding);

и вот мой код xaml:

 < ListBox Height="303" HorizontalAlignment="Left" Margin="12,108,0,0" Name="listBoxPerson" VerticalAlignment="Top" Width="234" >

        < ListBox.Resources >
            < ObjectDataProvider x:Key="UserData" ObjectType="local:Person"/ >
        < /ListBox.Resources >
        < ListBox.ItemTemplate >
            < DataTemplate >
                < Label Content="{Binding Path=Name}" ></Label  >
            < /DataTemplate >
        < /ListBox.ItemTemplate >
    < /ListBox >

это работает, когда я пишу

listboxPerson.ItemsSource= People;

, но никто не указан с первым данным кодом.Я запутался в том, как решить эту проблему, и буду рад любой помощи =)

Ответы [ 2 ]

2 голосов
/ 27 июля 2010

Этот вопрос не имеет никакого смысла.

Является ли идея, что вы должны заполнить код ListBox.Items вместо привязки ItemsSource к коллекции? Если это так, нет необходимости создавать привязку вообще; Ваш код должен выглядеть примерно так:

MyListBox.Items.AddRange(myCollection);

Является ли идея, что вы должны создать привязку к свойству Name в коде, а не в XAML? В этом случае вам нужно найти объект Label в DataTemplate и создать для него привязку. Трудно представить обстоятельства, при которых это было бы хорошей идеей.

Если вас спросят: «Почему это так?», То сказать: «Потому что мне сказали» на самом деле не ответ. Вам нужно выяснить, почему вас просят сделать это таким образом. Помимо прочего, знание причины поможет вам понять вопрос, который вы пытаетесь задать.

0 голосов
/ 27 июля 2010

Вы пробовали ItemsSourceProperty вместо ContentProperty, можете ли вы использовать это?

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