2
在UserControl
我enum
類型的DP(GroupStyle
型eGroupStyle
)和bool
型(IsGrouped
)的DP。我需要在所有可能的情況下開始一些故事板。但最後的MultiDataTrigger
只適用。我錯在哪裏?另外我想知道是否存在一個更簡單的方法來考慮這些條件。 (檢查IsGrouped
一次。)幾個MultiDataTriggers僅適用於最後一個
C#:
enum eGroupStyle
{
GroupStyle1,
GroupStyle2,
∙∙∙,
GroupStyleN,
}
XAML:
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyle1"/>
<Condition Binding="{Binding IsGrouped}" Value="False"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToUnselectedStyle1}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyle1"/>
<Condition Binding="{Binding IsGrouped}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToSelectedStyle1}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyle2"/>
<Condition Binding="{Binding IsGrouped}" Value="False"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToUnselectedStyle2}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyle2"/>
<Condition Binding="{Binding IsGrouped}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToSelectedStyle2}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
∙∙∙
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyleN"/>
<Condition Binding="{Binding IsGrouped}" Value="False"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToUnselectedStyleN}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding GroupStyle}" Value="GroupStyleN"/>
<Condition Binding="{Binding IsGrouped}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource Storyboard_TurnToSelectedStyleN}"/>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
任何想法?任何猜測?任何可能性? – Mimi
我發現,如果MultiDataTrigger序列中的當前條件位於新條件之前,其他條件也可能工作! *例如*假設當前的「GroupStyle」設置爲GroupStyle2,在這種情況下,將GroupStyle設置爲GroupStyle3,4 ... N可行,但對於GroupStyle1不起作用。這種行爲對於次要條件是成立的。例如如果當前的'GroupStyle'設置爲GroupStyle3而IsGrouped'是Flase,則會觸發'IsGrouped'設置爲True的情況,但反之亦然!!!! – Mimi
你不顯示故事板,我懷疑它們中包含的動畫可能是問題。特別是,您是否在故事板的動畫中指定了'FillBehavior =「Stop」?觸發器可能正在觸發,但動畫可能沒有任何效果。我最近回答了[類似的問題](http://stackoverflow.com/q/15657822)涉及WPF觸發器和動畫,看起來就是這種情況。 –