我是Windows手机编程的初学者。
我想使用该绑定属性将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类的名称绑定到我的文本块中。看看我在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>
答案 0 :(得分: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>