2013-08-23 49 views
0

我剛剛開始使用wpf/vmmv。我見過綁定集合到列表框的例子。例如:在xaml中,在代碼隱藏(例如Page)「DataContext = collection ..」中。如何將ListBox綁定到xaml中的視圖模型的成員?

我的視圖模型具有更多的屬性,而不僅僅是一個需要綁定到視圖的集合。因此,我想將視圖模型設置爲DataContext作爲視圖,然後在xaml中將視圖模型的集合綁定到ListBox。假設我的視圖模型設置爲DataContext並且它有一個名爲'Customers'的屬性,那麼將屬性綁定到xaml中的ListBox的正確方法是什麼? 我試過了,但不起作用。

謝謝。

回答

2

你的意思是'你如何將一個集合綁定到'ListBox'?你會是這樣做的:

<ListBox ItemsSource="{Binding Customers}" /> 

或者這樣:

<ListBox ItemsSource="{Binding Path=Customers}" /> 

如果你要綁定的Customer類的每個實例的內在價值,你會做這樣的事情:

<ListBox ItemsSource="{Binding Customers}" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Name}" /> 
      <TextBlock Text="{Binding Age}" /> 
      <TextBlock Text="{Binding EyeColour}" /> 
     </DataTemplate> 
    </ListBox.ItemTemplate>   
</ListBox> 
+0

你打我吧,不錯:) – sthotakura

+0

只是雖然。 :) – Sheridan

+0

在提問之前,我嘗試過ItemsSource =「{Binding Customers}」,但沒有成功。你的回答讓我回頭看看代碼,並注意到Customers屬性並不公開。奇怪,我沒有得到任何反饋,但我想這是預期的。您使用DataTemplate的示例將非常有用。 – bdristan

0

我猜你想顯示屬性「客戶」,你所要做的就是定義的ItemTemplate列表框,確定裏面的ItemTemplate DataTemplate中,並結合客戶的控制,就像下面:

<ListBox ItemsSource="{Binding}" > 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <TextBlock Text="{Binding Path=Customers}"/> 
      ......something else you want display 
     </DataTemplate> 
    </ListBox.ItemTemplate> 

</ListBox> 
相關問題