DataBinding到ListView

时间:2010-04-04 17:10:51

标签: c# data-binding listview

我有一个班级

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 :(得分:0)

我会将代码中的datacontext设置为你的Foo实例。

答案 1 :(得分:0)

不确定你要做什么,但list1和2是两个集合。 ItemsSource本身必须是一个集合(或者至少是一个不可数的,我不知道我的头脑)。我没有看到你的类Foo实现了任何重新集合集合的东西。你将无法以这种方式列出1/2。

你可以,例如让Foo实现IEnumerable<KeyValuePair<string,string>>,然后用你的字符串产生键值对。然后你可以绑定到属性键和值。