2016-09-20 49 views
0

我是Windows手機編程的初學者。Windows Phone 8中的多級數據綁定

我想使用綁定屬性將API中的數據綁定到我的XAML元素。請讓我知道我們如何在其中綁定多級類對象。

這是我的場景。

List<Sample> SearchResult = new List<Sample>() 
{ 
    new Sample(){ 
     Name="ABC",         
     modelProperty = new SampleDetail(){ 
       articleNo="1", videoURL = "https://www.youtube.com/watch?v=abc", 
       colors = new List<ColorsDemo>(){ 
         new ColorsDemo { 
           Name = "Red", 
           colorProperty= new ColorDemoProperty{ name = "ABC",article_no = "Art1", 
           image = new Uri("http://img.youtube.com/vi/e60E99tUdxs/default.jpg",UriKind.RelativeOrAbsolute) 
           } 
         } 
       } 
     } 
} 

現在,我想將ColorsDemo類的Name綁定到我的文本塊中。看看我已經做了什麼在XAML這樣綁定:

<TextBlock x:Name="PName" Grid.Row="0" Margin="100,0,0,0" Tap="ProductName_Tap" HorizontalAlignment="Center" VerticalAlignment="Center" Width="350" TextWrapping="Wrap" Foreground="Black" Text="{Binding Path=modelProperty.colors.Name}" FontSize="30"></TextBlock> 

回答

1

從你的代碼,我看到,顏色是一個ColorDemo對象列表。所以當你說{Binding Path=modelProperty.colors.Name}它不會告訴哪個列表項綁定到。正確的用法應該是{Binding Path=modelProperty.colors[0].Name}。這告訴控件綁定到第一個顏色項目的名稱(因爲索引是0)。

綁定所有的顏色。您應該使用Listview並綁定其中的顏色。所以你應該可以做這樣的事情。

<ListView ItemSource={Binding Path=modelProperty.colors}> 
    <ListView.ItemTemplate> 
     <TextBlock x:Name="PName" Grid.Row="0" Margin="100,0,0,0" Tap="ProductName_Tap" HorizontalAlignment="Center" VerticalAlignment="Center" Width="350" TextWrapping="Wrap" Foreground="Black" Text="{Binding Path=Name}" FontSize="30"></TextBlock> 
    </ListView.ItemTemplate> 
</ListView> 
+0

感謝您的及時回覆。我試過這個,但每次都會給我這個列表的第一個元素的數據。我怎樣才能使它動態.. 像假設我有2個項目在列表中呢? –

+0

這將取決於您嘗試實施的邏輯。你如何決定你想綁定哪個ColorDemo對象? – Ferdin

+0

我想要按照升序來綁定所有的colordemo對象。就好像有兩種顏色紅色和綠色,那麼我會將它綁定爲1.紅色和2.綠色。 –