2011-04-20 87 views
2

我有一個列表框綁定到集合,PlaylistTracks。 PlaylistTracks包含列表ID和曲目ID。所有曲目都存儲在另一個收藏中,曲目。該集合具有曲目名稱。列表綁定在silverlight 4(c#)與mvvm

我可以得到列表框來顯示從未綁定到集合中的曲目名稱嗎?事情是這樣的:

<ListBox Name="PlayListTracksBox" 
ItemsSource="{Binding Path=PlaylistTracks, Mode=TwoWay}" 
DisplayMemberPath="Tracks.Name" 
SelectedItem="{Binding Path=SelectedListTrack, Mode=TwoWay}"></ListBox> 
+3

我認爲在更正確的MVVM實現中,您會將Track Name屬性放在您綁定到列表中的ViewModels上。 – kindohm 2011-04-20 17:19:42

+0

+1以上評論。列表框項目如何知道如何「查找」軌道名稱?正如kindohm所說,你需要將你綁定的列表弄平。 – 2011-04-20 17:50:33

回答

2

我相信無論什麼階級PlaylistTracks壓倒一切ToString()含有會得到你想要的工作什麼的最快方式。在ToString裏面,你必須把你需要的邏輯放在正確的軌道上,並從中返回名字。

如果您可以將軌道名稱放入您的ItemsSource中的頂層對象中,那麼使用「Silverlighty」方法來實現此功能就是提供一個ItemTemplate並綁定到您想要的任何內容。例如:

<ListBox> 
     <ListBox.ItemTemplate> 
      <DataTemplate> 
       <TextBlock Text="{Binding Tracks.Name}"></TextBlock> 
      </DataTemplate> 
     </ListBox.ItemTemplate> 
    </ListBox>