[英]Binding the Pivo in Windows Phone 8
我在Windows Phone 8的数据透视控件中遇到一些问题,我真的需要一个答案。 我开始怀疑我是否在这里错过了什么。
假设我有这样的结构
<vm:MainViewModel
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
**strong text**xmlns:vm="clr-namespace:PivotApp3.ViewModels"
Name = "I' just a placeholder collection of ItemViewModels"
>
<vm:MainViewModel.Items>
<vm:ItemViewModel Name="Some Item">
<vm:ItemViewModel.Details>
<vm:DetailViewModel Name="Some Detail"/>
</vm:ItemViewModel.Details>
</vm:ItemViewModel>
</vm:MainViewModel>
是否可以将枢轴itemSource绑定到,并可以将LongListSelector绑定。
简而言之,我需要绑定一个集合,并为此集合中的每个项目绑定另一个集合。
我无法使用示例数据。
在ItemViewModel中创建一个ObservableCollection。
例如,一个人的ObservableCollection。
模型:
public class Person
{
public string Name { get; set; }
public int Age { get; set; }
}
在ItemViewModel.cs
添加People属性:
public ObservableCollection<Person> People{ get; set; }
在MainViewModelSampleData.xaml
:
<vm:MainViewModel xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vm="clr-namespace:PivotApp3.ViewModels"
Name="I' just a placeholder collection of ItemViewModels">
<vm:MainViewModel.Items>
<vm:ItemViewModel Name="People 1">
<vm:ItemViewModel.People>
<vm:Person Name="Test 1"
Age="1" />
<vm:Person Name="Test 2"
Age="2" />
</vm:ItemViewModel.People>
</vm:ItemViewModel>
<vm:ItemViewModel Name="People 2">
<vm:ItemViewModel.People>
<vm:Person Name="Test 3"
Age="3" />
<vm:Person Name="Test 4"
Age="4" />
</vm:ItemViewModel.People>
</vm:ItemViewModel>
</vm:MainViewModel.Items>
在MainPage.xaml中添加LongListSelector:
<phone:LongListSelector x:Name="MainLongListSelector"
Margin="0,0,-12,0"
ItemsSource="{Binding Items}"
SelectionChanged="MainLongListSelector_SelectionChanged">
<phone:LongListSelector.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,0,0,17"
Orientation="Vertical">
<TextBlock Text="{Binding Name}"
TextWrapping="Wrap"
Style="{StaticResource PhoneTextExtraLargeStyle}" />
<ItemsControl Margin="12,0,0,0" ItemsSource="{Binding People}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Name}" />
<TextBlock Text="{Binding Age}" />
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</phone:LongListSelector.ItemTemplate>
</phone:LongListSelector>
结果:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.