2015-12-30 106 views
0

我想在事件觸發器中設置其中一個依賴項屬性的值。無法在樣式中實現此功能。在XAML的事件觸發器中設置依賴屬性值?

代碼下面提到的風格是我DataGridCell,所以當一些Drop事件的發生DataGridCell我想屬性值設置爲爲depedency財產「的DragDrop:DragDropHelper.HighlightColumn」。

我需要下面的一些東西。

<Style x:Key="GridCellStyle" TargetType="DataGridCell"> 
    <Setter Property="FontFamily" Value="Verdana"></Setter>      
    <Style.Triggers> 
     <Trigger Property="IsSelected" Value="True"> 
      <Setter Property="Background" Value="Beige"></Setter> 
      <Setter Property="Foreground" Value="Black"></Setter> 
     </Trigger> 
     <EventTrigger RoutedEvent="Drop"> 
      <Setter Property="dragdrop:DragDropHelper.HighlightColumn" Value="True"></Setter> 
     </EventTrigger> 
    </Style.Triggers> 
</Style> 

回答

1

您不能將Setter添加到EventTrigger。使用適當的BeginStoryboard這樣的動作:

<EventTrigger RoutedEvent="Drop"> 
    <BeginStoryboard> 
     <Storyboard> 
      <BooleanAnimationUsingKeyFrames 
       Storyboard.TargetProperty="(dragdrop:DragDropHelper.HighlightColumn)"> 
       <DiscreteBooleanKeyFrame KeyTime="0:0:0" Value="True"/> 
      </BooleanAnimationUsingKeyFrames> 
     </Storyboard> 
    </BeginStoryboard> 
</EventTrigger> 
+0

我已經嘗試了上述方法。但得到異常..「無法解析屬性路徑中的所有屬性引用'dragdrop:DragDropHelper.HighlightColumn'。驗證適用的對象支持屬性。」 – Ujjwal27

+0

你剛試過Storyboard.TargetProperty =「HighlightColumn」嗎? – ZSH

+1

忘了將屬性名稱放在圓括號中,這是[動畫目標的屬性路徑]中附加屬性所必需的(https://msdn.microsoft.com/de-de/library/ms742451(v = vs.100))。 ASPX#databinding_sa)。 – Clemens

相關問題