2010-04-04 81 views
0

我有一個類數據綁定的ListView

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

,並與兩列

<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> 

一個ListView我如何綁定Foo類的實例的ListView?

這裏我設置一個DataContext

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

但它不能正常工作。

回答

0

我會將代碼背後的datacontext設置爲您的Foo實例。

+0

我已經設置了datacontext,但它仍然不起作用 – Neir0 2010-04-05 06:31:13

+0

奧克對不起,我查了一下它太快了。 你能否澄清你正在準備做什麼?(你想要的結果) 我認爲現在有一種更好的方法來解決這個問題。 – 2010-04-05 22:18:23

0

不知道你在做什麼,但是list1和2是兩個集合。 ItemsSource本身必須是一個集合(或可能至少是一個Ienumerable,我不知道我的頭)。我沒有看到你的班級Foo實現了任何類似於集合的東西。你將無法以這種方式回到列表1/2。

你可以例如讓Foo實現IEnumerable<KeyValuePair<string,string>>,然後用你的字符串產生Key Value對。然後你可以綁定到屬性鍵和值。