【问题标题】:WP7 Databind with Pivot - Not sure where I'm going wrongWP7 Databind with Pivot - 不知道哪里出错了
【发布时间】:2012-02-15 21:57:09
【问题描述】:

编辑:

解决了问题 - 请参阅已接受的答案以获得良好的解释!

我的 XAML 现在看起来像这样:

        <controls:Pivot x:Name="MainPivot" Title="FYP APP" ItemsSource="{Binding Cuisines}">
            <controls:Pivot.HeaderTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Cuisine}"/>
                </DataTemplate>
            </controls:Pivot.HeaderTemplate>
            <controls:Pivot.ItemTemplate>
                <DataTemplate>
                    <ListBox Margin="0,0,-12,0" ItemsSource="{Binding Outlets}">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Margin="0,0,0,17" Width="432" Height="78">
                                    <TextBlock Text="{Binding Name}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                                    <TextBlock Text="{Binding Cuisine}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
                                </StackPanel>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>
                </DataTemplate>
            </controls:Pivot.ItemTemplate>
        </controls:Pivot>

原文:

我正在使用 VS 提供的示例构建一个 Pivot 页面。

我有一个餐厅列表,我希望能够通过向左/向右滑动枢轴来过滤(例如http://img831.imageshack.us/img831/514/pivotm.jpg)。

我有一个App.xaml.cspublic static ObservableCollection&lt;OutletViewModel&gt; LocalOutlets,由 MainPage 构造函数填充)中所有餐厅的列表,然后对其进行处理以创建此结构:

OutletListPage2.xaml.cs(我正在处理的页面)将DataContext 设置为新的OutletsByCuisineViewModel()

OutletsByCuisineViewModel 有一个public ObservableCollection&lt;CuisineViewModel&gt; Cuisines,其中包含每个美食的CuisineViewModel(包括“所有”美食)。

CuisineViewModel 有一个public string Cuisine 和一个public ObservableCollection&lt;OutletViewModel&gt; Outlets

OutletViewModel 包含 public string Namepublic string Cuisine - 每个都触发 PropertyChanged 事件。

我要使用的设计样本数据是:(另外,我不能在这个文件中多次指定同一个插座 - VS 说名称 XYZ 已经存在于当前名称范围内)

<local:OutletsByCuisineViewModel 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"       
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:FYP.ViewModels">

    <local:OutletsByCuisineViewModel.Cuisines>

        <local:CuisineViewModel Cuisine="all">
            <local:CuisineViewModel.Outlets>
                <local:OutletViewModel Name="Test1" Cuisine="fast food" />
                <local:OutletViewModel Name="Test2" Cuisine="indian" />
                <local:OutletViewModel Name="Test3" Cuisine="pizza" />
            </local:CuisineViewModel.Outlets>
        </local:CuisineViewModel>

        <local:CuisineViewModel Cuisine="fast food">
            <local:CuisineViewModel.Outlets>
                <local:OutletViewModel Name="Test1a" Cuisine="fast food" />
            </local:CuisineViewModel.Outlets>
        </local:CuisineViewModel>

        <local:CuisineViewModel Cuisine="indian">
            <local:CuisineViewModel.Outlets>
                <local:OutletViewModel Name="Test2a" Cuisine="indian" />
            </local:CuisineViewModel.Outlets>
        </local:CuisineViewModel>

        <local:CuisineViewModel Cuisine="pizza">
            <local:CuisineViewModel.Outlets>
                <local:OutletViewModel Name="Test3a" Cuisine="pizza" />
            </local:CuisineViewModel.Outlets>
        </local:CuisineViewModel>

    </local:OutletsByCuisineViewModel.Cuisines>

</local:OutletsByCuisineViewModel>

我在 XAML 设计器中有以下内容 - http://img844.imageshack.us/img844/8464/pivot2.jpg

我无法在网上找到任何可能有帮助的东西,可能是因为我不确定出了什么问题。

任何建议或指点将不胜感激:)

【问题讨论】:

    标签: windows-phone-7 data-binding pivot


    【解决方案1】:

    查看最后一个屏幕截图 - 当您设置 ItemsSource 属性时,Pivot 会忽略您明确指定的 PivotItems 集合,并根据 ItemsSource 集合生成一个新的集合。 因此,您可以尝试删除 PivotItem 声明并仅使用 ItemsSource,将其绑定到您的视图模型的集合,并使用 Pivot.ItemTemplate 和 Pivot.ItemContainerStyle 属性的组合来正确设置数据透视项的样式(设置标题和内容)。

    【讨论】:

    • 我今天又看了一遍并解决了,但这就是我所做的,所以接受这个答案:)
    猜你喜欢
    • 1970-01-01
    • 2012-05-09
    • 1970-01-01
    • 2015-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2020-03-24
    相关资源
    最近更新 更多