Windows Phone 中的多级数据绑定 8
Multi level data Binding in Windows Phone 8
我是 Windows phone 编程的初学者。
我想使用该绑定属性将数据从 API 绑定到我的 XAML 元素。请让我知道我们如何在其中绑定多级 classes 对象。
这是我的场景。
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 class 的名称绑定到我的文本块中。看看我为绑定 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>
从您的代码中,我看到颜色是 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>
我是 Windows phone 编程的初学者。
我想使用该绑定属性将数据从 API 绑定到我的 XAML 元素。请让我知道我们如何在其中绑定多级 classes 对象。
这是我的场景。
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 class 的名称绑定到我的文本块中。看看我为绑定 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>
从您的代码中,我看到颜色是 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>