2013-10-22 37 views
2

我得到了一個不斷出錯的代碼,我可以弄清楚。在DataTemplate中調用Storyboard

沒有可用的名稱範圍來解析名稱'gridCallLog'。

<DataTemplate x:Key="ContentDetail"> 
     <DataTemplate.Resources> 
      <Storyboard x:Key="StoryCallLogOn"> 
       <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="gridCallLog"> 
        <EasingThicknessKeyFrame KeyTime="0" Value="0,0,10,23.04"/> 
        <EasingThicknessKeyFrame KeyTime="0:0:0.6" Value="0,0,10,200"/> 
       </ThicknessAnimationUsingKeyFrames> 
       <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="borderCallLog"> 
        <EasingThicknessKeyFrame KeyTime="0" Value="0,402,10,23.04"/> 
        <EasingThicknessKeyFrame KeyTime="0:0:0.6" Value="0,225,10,23.04"/> 
       </ThicknessAnimationUsingKeyFrames> 
      </Storyboard> 
     </DataTemplate.Resources> 
     <StackPanel Orientation="Horizontal" Height="500" > 
      <Border Margin="10,5,0,10" BorderBrush="Transparent" CornerRadius="3" BorderThickness="1" Width="1050"> 
       <StackPanel Margin="5,5,9,5" Orientation="Horizontal"> 
        <dx:DXTabControl Width="850" Margin="5,5,0,0"> 
         <dx:DXTabItem Header="Call Log"> 
          <StackPanel> 
           <dxg:GridControl x:Name="gridCallLog" Height="400" ItemsSource="{Binding ElementName=MainStack,Path=DataContext.CallLog}" 
           dx:ThemeManager.ThemeName="Office2010Blue" Margin="0,0,10,0" SelectedItem="{Binding ElementName=MainStack,Path=DataContext.SelectedCallLog,UpdateSourceTrigger=PropertyChanged}" > 
            <dxg:GridControl.Columns > 


<i:Interaction.Triggers> 
<i:EventTrigger EventName="MouseLeftButtonDown"> 
    <command:EventToCommand Command="{Binding ElementName=MainStack,Path=DataContext.CallLogOnCommand}" /> 
</i:EventTrigger> 
<ei:DataTrigger Binding="{Binding ElementName=MainStack,Path=DataContext.CallLogOn, Mode=OneWay}" Value="ON"> 
    <ei:ControlStoryboardAction Storyboard="{StaticResource StoryCallLogOn}" ControlStoryboardOption="Play"/> 
</ei:DataTrigger> 

,故事情節獲取調用沒有問題。但由於某些原因,即使故事板位於DataTemplate.Resources中,它也看不到名爲gridCallLog的GridControl。 任何指針都會被感激地接受。斯科特

+0

你試圖把你的故事板的控制insode的DataTemplate中的一個? – Benlitz

+0

你的意思是將它移入堆棧面板或其他東西?我試過並得到了UIElement。謝謝 – scottsanpedro

+0

你在哪裏定義了什麼元素?? – XAMeLi

回答

3

您應該添加的資源成是DataTemplate內部控制的一個,而不是在DataTemplate本身:

<DataTemplate x:Key="ContentDetail"> 
     <StackPanel Orientation="Horizontal" Height="500" > 
     <StackPanel.Resources> 
      <Storyboard x:Key="StoryCallLogOn"> 
       <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="gridCallLog"> 
        <EasingThicknessKeyFrame KeyTime="0" Value="0,0,10,23.04"/> 
        <EasingThicknessKeyFrame KeyTime="0:0:0.6" Value="0,0,10,200"/> 
       </ThicknessAnimationUsingKeyFrames> 
       <ThicknessAnimationUsingKeyFrames Storyboard.TargetProperty="(FrameworkElement.Margin)" Storyboard.TargetName="borderCallLog"> 
        <EasingThicknessKeyFrame KeyTime="0" Value="0,402,10,23.04"/> 
        <EasingThicknessKeyFrame KeyTime="0:0:0.6" Value="0,225,10,23.04"/> 
       </ThicknessAnimationUsingKeyFrames> 
      </Storyboard> 
     </StackPanel.Resources> 
     <Border Margin="10,5,0,10" BorderBrush="Transparent" CornerRadius="3" BorderThickness="1" Width="1050"> 
      <StackPanel Margin="5,5,9,5" Orientation="Horizontal"> 
       <dx:DXTabControl Width="850" Margin="5,5,0,0"> 
        <dx:DXTabItem Header="Call Log"> 
         <StackPanel> 
          <dxg:GridControl x:Name="gridCallLog" Height="400" ItemsSource="{Binding ElementName=MainStack,Path=DataContext.CallLog}" 
          dx:ThemeManager.ThemeName="Office2010Blue" Margin="0,0,10,0" SelectedItem="{Binding ElementName=MainStack,Path=DataContext.SelectedCallLog,UpdateSourceTrigger=PropertyChanged}" > 
           <dxg:GridControl.Columns > 
+0

抱歉,延遲迴來。是的,似乎踢開始故事板。完善。謝謝 – scottsanpedro

相關問題