簡體   English   中英

在Pivot Windows Phone 8.1中動態綁定項目模板

[英]Binding Item Template dynamically in Pivot Windows phone 8.1

我在同一項目模板的樞軸項目中有多個部分。

以下是我的XAML樞軸部分

<Page
    x:Class="Namespace.Page"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="using:Namespace"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:ViewModels="Namespace.ViewModels"
    xmlns:q42controls="using:Q42.WinRT.Controls"
    mc:Ignorable="d">

    <Page.Resources>
        <ViewModels:ViewModel x:Key="ViewModel" />
        <DataTemplate x:Key="headerTemplate">
            <TextBlock Text="{Binding Title}" FontSize="16"/>
        </DataTemplate>
        <DataTemplate x:Key="pivotTemplate">
            <ListView x:Name="listView" Background="White" ItemsSource="{Binding Articles}" 
                      HorizontalAlignment="Left" Margin="-25 0 -25 0" SelectionChanged="getIndex">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Tapped="StackPanel_Tapped">
                            <Grid>
                                <Grid.Background>
                                    <ImageBrush AlignmentX="Center" AlignmentY="Center" ImageSource="Assets/PlaceHolder.jpg"></ImageBrush>
                                </Grid.Background>
                                <Image x:Name="ArticleImage" q42controls:ImageExtensions.CacheUri="{Binding ImageURL}"></Image>                                
                            </Grid>
                            <StackPanel>
                                <TextBlock x:Name="HeadLine" Text="{Binding HeadLine}" 
                                               Margin="10 5 10 -5" TextWrapping="Wrap" 
                                               FontSize="20"
                                               FontFamily="{StaticResource HeadlineCommonFamiy}"
                                               Pivot.SlideInAnimationGroup="GroupTwo"
                                               FontWeight="Bold" TextTrimming="CharacterEllipsis" Height="63"/>

                                <TextBlock Text="{Binding Abstract}" TextWrapping="Wrap" FontSize="15"
                                   Pivot.SlideInAnimationGroup="GroupTwo" Margin="10 5 0 10"
                                           FontFamily="{StaticResource AbstractCommonFamily}"/>
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </DataTemplate>
    </Page.Resources>

    <Page.BottomAppBar>
        <CommandBar Foreground="Black" ClosedDisplayMode="Minimal" Background="White">
            <CommandBar.PrimaryCommands>
                <AppBarButton x:Uid="Refresh" Icon="Refresh" Label="Refresh" Tapped="RefreshButton_Tapped"/>
            </CommandBar.PrimaryCommands>
            <CommandBar.SecondaryCommands>
                <AppBarButton x:Uid="Favourites" Icon="Favorite" Label="Favourites" Tapped="Favourites_Tapped"/>
                <AppBarButton x:Uid="Settings" Icon="Setting" Label="Settings" Tapped="Settings_Tapped"/>
            </CommandBar.SecondaryCommands>
        </CommandBar>
    </Page.BottomAppBar>

    <Grid Style="{StaticResource MyGridStyle}">
        <Grid x:Name="LoadingGrid" Visibility="Visible">
            <ProgressRing x:Name="progressRing" IsActive="True" Foreground="White" HorizontalAlignment="Center" Width="60"
                          Height="50" VerticalAlignment="Center" Margin="0 20 0 0"></ProgressRing>
        </Grid>

        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="60"></RowDefinition>
                <RowDefinition Height="45"></RowDefinition>
                <RowDefinition Height="*"></RowDefinition>
            </Grid.RowDefinitions>

            <Grid Grid.Row="0">
                <Image Source="Assets/_logo.png" HorizontalAlignment="Center" Margin="1 5 0 0"></Image>
            </Grid>

            <Grid Grid.Row="1">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="50"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <Grid Grid.Column="0">
                    <Button x:Name="HamburgerButton" FontFamily="Segoe MDL2 Assets" Content="&#xE700;"
                            Width="60" Height="60" Background="Transparent" Margin="-10 -20 0 0" 
                            Click="HamburgerButton_Click" Foreground="White"/>
                </Grid>
                <Grid Grid.Column="1">
                    <TextBlock Text="சினிமா" HorizontalAlignment="Center" FontSize="30" 
                           Margin="-50 0 0 0" Foreground="White"></TextBlock>
                </Grid>
            </Grid>

            <Grid Grid.Row="2" x:Name="galleryGrid" Visibility="Collapsed">
                <SplitView x:Name="MySplitView" DisplayMode="CompactOverlay" IsPaneOpen="False" 
                           CompactPaneLength="0" OpenPaneLength="220">
                    <SplitView.Pane>
                        <ListView x:Name="menuBindList" Style="{StaticResource MyListViewStyle}">
                            <ListView.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                        <StackPanel Orientation="Horizontal" Tag="{Binding SectionName}">
                                            <TextBlock Text="{Binding TitleofAccess}"
                                                   Tag="{Binding SectionName}" FontSize="18" 
                                                   VerticalAlignment="Center" Foreground="White" Tapped="MenuTextBlock_Tapped" />
                                        </StackPanel>
                                    </StackPanel>
                                </DataTemplate>
                            </ListView.ItemTemplate>
                        </ListView>
                    </SplitView.Pane>
                    <SplitView.Content>
                        <ScrollViewer Name="cinemaScroll">
                            <Pivot DataContext="{StaticResource ViewModel}" x:Name="galleryPivot" 
                                    HeaderTemplate="{StaticResource headerTemplate}" 
                                    ItemTemplate="{StaticResource pivotTemplate}" ItemsSource="{Binding Feeds}" 
                                    Margin="0,-10,0,10" SelectionChanged="galleryPivot_SelectionChanged">

                                <Pivot.Resources>
                                    <Style TargetType="PivotHeaderItem">
                                        <Setter Property="CharacterSpacing" Value="{ThemeResource PivotHeaderItemCharacterSpacing}" />
                                        <Setter Property="Background" Value="Transparent" />
                                        <Setter Property="Foreground" Value="{ThemeResource SystemControlForegroundBaseMediumBrush}" />
                                        <Setter Property="Padding" Value="{ThemeResource PivotHeaderItemMargin}" />

                                        <Setter Property="VerticalContentAlignment" Value="Center" />
                                        <Setter Property="IsTabStop" Value="False" />
                                        <Setter Property="RequestedTheme" Value="Dark" />
                                        <Setter Property="Template">
                                            <Setter.Value>
                                                <ControlTemplate TargetType="PivotHeaderItem">
                                                    <Grid 
                        x:Name="Grid"
                        Background="{TemplateBinding Background}">
                                                        <Grid.Resources>
                                                            <Style x:Key="BaseContentPresenterStyle" TargetType="ContentPresenter">
                                                                <Setter Property="FontFamily" Value="Segoe UI"/>
                                                                <Setter Property="FontWeight" Value="SemiBold"/>
                                                                <Setter Property="FontSize" Value="15"/>
                                                                <Setter Property="TextWrapping" Value="Wrap"/>
                                                                <Setter Property="LineStackingStrategy" Value="MaxHeight"/>
                                                                <Setter Property="TextLineBounds" Value="Full"/>
                                                                <Setter Property="OpticalMarginAlignment" Value="TrimSideBearings"/>
                                                            </Style>
                                                            <Style x:Key="BodyContentPresenterStyle" TargetType="ContentPresenter" BasedOn="{StaticResource BaseContentPresenterStyle}">
                                                                <Setter Property="FontFamily" Value="{ThemeResource PivotHeaderItemFontFamily}" />
                                                                <Setter Property="FontWeight" Value="{ThemeResource PivotHeaderItemThemeFontWeight}"/>
                                                                <Setter Property="FontSize" Value="{ThemeResource PivotHeaderItemFontSize}"/>
                                                            </Style>
                                                        </Grid.Resources>
                                                        <VisualStateManager.VisualStateGroups>
                                                            <VisualStateGroup x:Name="SelectionStates">
                                                                <VisualStateGroup.Transitions>
                                                                    <VisualTransition From="Unselected" To="UnselectedLocked" GeneratedDuration="0:0:0.33" />
                                                                    <VisualTransition From="UnselectedLocked" To="Unselected" GeneratedDuration="0:0:0.33" />
                                                                </VisualStateGroup.Transitions>
                                                                <VisualState x:Name="Disabled">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlDisabledBaseMediumLowBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Unselected" />
                                                                <VisualState x:Name="UnselectedLocked">
                                                                    <Storyboard>
                                                                        <DoubleAnimation Storyboard.TargetName="ContentPresenterTranslateTransform"
                                                         Storyboard.TargetProperty="X"
                                                         Duration="0" To="{ThemeResource PivotHeaderItemLockedTranslation}" />
                                                                        <DoubleAnimation Storyboard.TargetName="ContentPresenter"
                                                         Storyboard.TargetProperty="(UIElement.Opacity)"
                                                         Duration="0" To="0" />
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="Selected">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseHighBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid"
                                                                       Storyboard.TargetProperty="Background" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="#FF42424C" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="UnselectedPointerOver">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseMediumHighBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid"
                                                                       Storyboard.TargetProperty="Background" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightTransparentBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="SelectedPointerOver">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                        Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseMediumHighBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid"
                                                                       Storyboard.TargetProperty="Background" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightTransparentBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="UnselectedPressed">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseMediumHighBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid"
                                                                       Storyboard.TargetProperty="Background" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightTransparentBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                                <VisualState x:Name="SelectedPressed">
                                                                    <Storyboard>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="ContentPresenter"
                                                                       Storyboard.TargetProperty="Foreground" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightAltBaseMediumHighBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="Grid"
                                                                       Storyboard.TargetProperty="Background" >
                                                                            <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource SystemControlHighlightTransparentBrush}" />
                                                                        </ObjectAnimationUsingKeyFrames>
                                                                    </Storyboard>
                                                                </VisualState>
                                                            </VisualStateGroup>
                                                        </VisualStateManager.VisualStateGroups>
                                                        <ContentPresenter
                            x:Name="ContentPresenter"
                            Content="{TemplateBinding Content}"
                            ContentTemplate="{TemplateBinding ContentTemplate}"
                            Margin="{TemplateBinding Padding}"
                            FontSize="{TemplateBinding FontSize}"
                            FontFamily="{TemplateBinding FontFamily}"
                            FontWeight="{TemplateBinding FontWeight}"
                            HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                            VerticalAlignment="{TemplateBinding VerticalContentAlignment}">
                                                            <ContentPresenter.RenderTransform>
                                                                <TranslateTransform x:Name="ContentPresenterTranslateTransform" />
                                                            </ContentPresenter.RenderTransform>
                                                        </ContentPresenter>
                                                    </Grid>
                                                </ControlTemplate>
                                            </Setter.Value>
                                        </Setter>
                                    </Style>
                                </Pivot.Resources>
                            </Pivot>
                        </ScrollViewer>
                    </SplitView.Content>
                </SplitView>
            </Grid>
        </Grid>
    </Grid>
</Page>

我需要動態更改特定部分的項目模板 我怎樣才能做到這一點。 該部分將包含圖像,我們需要更改整個Item模板,然后在數據透視圖中進行重定向。 如何獲取方案。

以下是特定部分需要綁定的圖像設計

如下第一項 在此處輸入圖片說明

同樣,它包含項目列表。 在點擊每個部分時,重定向到下面 在此處輸入圖片說明

在點擊單個圖像時,我們將

在此處輸入圖片說明

點擊將重定向到以下部分 在此處輸入圖片說明

以上過程將在單個樞紐項目中執行。 有可能嗎 如果可能的話,如何做到這一點。 請有人指導我解決這個問題

根據我的理解,將建議您可以實現此目標的一些方法

<Pivot >...
      <PivotItem x:Uid="OVERVIEW" Header="" Margin="0">
                        <Grid>...
                        </Grid>
      </PivotItem>.......
    </Pivot>
  • 將為該數據透視表項目內的特定數據透視表指定ItemTemplate。 如果更改是針對每個樞紐的

  • 另一種方式是使用此鏈接,您甚至可以使用Converters,並且基於數據可以使網格可見不可見等。但是您將需要確定所更改的ItemTemplate觸發器基於什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM