Привязка данных к ListView - PullRequest
       18

Привязка данных к ListView

0 голосов
/ 04 апреля 2010

У меня есть класс

public class Foo
    {
        public List<string> list1 { get; set;}
        public List<string> list2 { get; set; }  
        public string url;
    }

и ListView с двумя столбцами

 <ListView Name="listview" ItemsSource="{Binding}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="list1" 
                       DisplayMemberBinding="{Binding Path=list1}" />
                <GridViewColumn Header="list2" 
                       DisplayMemberBinding="{Binding Path=list2}" />
            </GridView>
        </ListView.View>
    </ListView>

Как я могу привязать экземпляр класса Foo к ListView?

Здесь я установил DataContext

listview.DataContext = new Foo()
                                       {
                                           list1 = new[] { "dsfasd", "asdfasdf", "asdf", "asdfsd" }.ToList(),
                                           list2 = new[] { "dsfasd", "asdfasdf", "asdf", "asdfasd" }.ToList()
                                       };

Но это не работа.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2010

Не уверен, что вы пытаетесь сделать, но list1 и 2 - две коллекции. ItemsSource сам по себе должен быть коллекцией (или, по крайней мере, Ienumerable, я не знаю по голове). Я не вижу, чтобы ваш класс Foo реализовывал все, что напоминает коллекцию. Таким образом, вы не сможете подключиться к list1 / 2.

Вы можете, например, пусть Foo реализует IEnumerable<KeyValuePair<string,string>> и затем выдает пары Key Value с вашими строками. Тогда вы могли бы связать со свойствами ключ и значение.

0 голосов
/ 04 апреля 2010

Я бы установил его datacontext в коде позади вашего экземпляра Foo.

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