2016-05-31 19 views
1

ページの構造を以下に示します。相対的なパネルの左側に移動するVisualState.SettersUWP Visual State ManagerにDataTemplateの内容が表示されない

<ScrollViewer VerticalScrollBarVisibility="Auto"> 
    <VisualStateManager.VisualStateGroups> 
     <VisualStateGroup x:Name="VisualStateGroup"> 
      <VisualState x:Name="VisualStateNarrow"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="1"/> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 

       </VisualState.Setters> 
      </VisualState> 
      <VisualState x:Name="VisualStateWide"> 
       <VisualState.StateTriggers> 
        <AdaptiveTrigger MinWindowWidth="800"/> 
       </VisualState.StateTriggers> 
       <VisualState.Setters> 


       </VisualState.Setters> 
      </VisualState> 
     </VisualStateGroup> 
    </VisualStateManager.VisualStateGroups> 


    <Grid Background="White"> 

    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="*" /> 
     <RowDefinition Height="*" /> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*" /> 
     <ColumnDefinition Width="*" /> 
    </Grid.ColumnDefinitions> 

    <Pivot x:Name="PivotPlatform" Margin="0" ItemsSource="{Binding PivotItems}" Grid.Row="2"> 


     <Pivot.HeaderTemplate> 
      <DataTemplate> 
       <StackPanel Height="0" Width="0"> 
        <TextBlock Text="{Binding}" /> 
       </StackPanel> 
      </DataTemplate> 
     </Pivot.HeaderTemplate> 

     <Pivot.ItemTemplate> 
      <DataTemplate> 
       <Grid xmlns:uwp="using:AmazingPullToRefresh.Controls"> 
        <Grid.RowDefinitions> 
         <RowDefinition Height="Auto" /> 
         <RowDefinition Height="*" /> 
        </Grid.RowDefinitions> 

        <uwp:PullToRefreshAdorner.Extender> 
         <uwp:PullToRefreshExtender RefreshRequested="PullToRefreshExtender_RefreshRequested" /> 
        </uwp:PullToRefreshAdorner.Extender> 

        <RelativePanel x:Name="contentPanel" Grid.Row="0" Margin="10 -30 10 10"> 
         <TextBlock Name="titleTB" Text="{Binding Title}" FontSize="12" 
            RelativePanel.AlignLeftWithPanel="True" 
            RelativePanel.AlignTopWithPanel="True"/> 
         <TextBlock Name="totalTB" Text="{Binding Total}" FontSize="18" 
           RelativePanel.AlignLeftWithPanel="True" 
           RelativePanel.Below="titleTB" /> 
         <ProgressBar Name="progressBar" Value="{Binding ProgressValue}" Width="100" Foreground="{StaticResource currentThemeColor}" 
            RelativePanel.AlignLeftWithPanel="True" RelativePanel.Below="totalTB" 
            Margin="0 5 0 0"/> 
         <TextBlock Name="dateTB" Text="{Binding Date}" FontSize="16" 
           RelativePanel.AlignRightWithPanel="True" 
           RelativePanel.AlignTopWithPanel="True" /> 
        </RelativePanel> 

         <ScrollViewer Grid.Row="1" VerticalScrollBarVisibility="Auto"> 
          <Charting:Chart Grid.Row="1" x:Name="LineChart" 
            Margin="10" > 
           <Charting:LineSeries Title="" IndependentValuePath="Name" DependentValuePath="Amount" 
              IsSelectionEnabled="False" ItemsSource="{Binding Result}" /> 

          </Charting:Chart> 
         </ScrollViewer> 

        </Grid> 
      </DataTemplate> 
     </Pivot.ItemTemplate> 

    </Pivot> 

私は用セッターを追加dateTBのTextBlock、私はというエラーを取得:

アニメーションが 'dateTB'という名前のオブジェクトを修正しようとしていますが、このようなオブジェクトはページに見つかりません。セッターを追加するための

コードは次のとおりです。

<Setter Target="dateTB.(RelativePanel.AlignLeftWithPanel)" Value="True"/> 

は、このページ構造の表示状態Managerを使用して、このテキストブロックを制御する方法はありますか?

+0

*あなたの* TextBlock *は* DataTemplate *の内部にあるため、例外が発生します。 – Romasz

+0

@Romaszはい、そうです。しかし、DataTemplateを削除すると、ItemTemplateがGrid型をサポートしていないというエラーが表示されます。 VisualStateManagerから表示されるItemTemplateを作成する方法を知っていますか? – alminh

+2

あなたはvisualstatemanagerをgatの下のdatatemplateの中に置こうとしましたか? – Romasz

答えて

4

すべてのXAML UIフレームワークに共通の名前スコープの問題です。 VSMはUserControlまたはPageの名前スコープにあり、TextBlockDataTemplateにあります。

VSMを問題に解決するために、DataTemplateの中に必要なものすべてを単一の名前スコープに入れて、この問題に対する最良の解決策です。

関連する問題