繁体   English   中英

在Windows Phone 8中绑定Pivo

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM