Проблема с раскадровкой, которая работает до изменения шаблона - PullRequest
0 голосов
/ 31 декабря 2018

В представлении списка я меняю несколько таблиц данных следующим образом.

                     <DataTemplate>
                        <ContentControl Content="{Binding}">
                            <ContentControl.Style>
                                <Style TargetType="{x:Type ContentControl}">
                                    <Setter Property="ContentTemplate" Value="{StaticResource FileDownloading}" />
                                    <Style.Triggers>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Status}" Value="Complete" />
                                                <Condition Binding="{Binding Path=FileExists}" Value="False" />
                                            </MultiDataTrigger.Conditions>
                                            <Setter Property="ContentTemplate" Value="{StaticResource FileMissing}" />
                                        </MultiDataTrigger>
                                        <MultiDataTrigger>
                                            <MultiDataTrigger.Conditions>
                                                <Condition Binding="{Binding Path=Status}" Value="Complete" />
                                                <Condition Binding="{Binding Path=FileExists}" Value="True" />
                                            </MultiDataTrigger.Conditions>
                                            <Setter Property="ContentTemplate" Value="{StaticResource FileCompleted}" />
                                        </MultiDataTrigger>
                                    </Style.Triggers>
                                </Style>

                            </ContentControl.Style>
                        </ContentControl>
                    </DataTemplate>

В ресурсах окна у меня есть раскадровка, среди которых есть и другие.

                   <Storyboard x:Key="sbShowDeleteIcon">
                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="gridWait" Storyboard.TargetProperty="(UIElement.Opacity)">
                            <EasingDoubleKeyFrame KeyTime="0" Value="1" />
                            <EasingDoubleKeyFrame KeyTime="0:0:0.2" Value="0" />
                        </DoubleAnimationUsingKeyFrames>
                    </Storyboard>

В одном изданные приводятся к значению, когда указатель мыши находится над элементом, а затем изменяется непрозрачность сетки с объектом Target с именем gridWait.

Проблема, которая существует, заключается в том, что если указанная раскадровка в настоящее время используется, так как указатель мыши находится над этим элементом иStyleTriggers изменили табличку с данными, затем раскадровка вызывает ошибку, поскольку она больше не может найти gridWait.

Что я пробовал?

  1. Я добавил фальшивый элемент симя gridWait для других таблиц данных.Но у раскадровки все еще была проблема.
  2. Мне понадобилась раскадровка только для 1 таблицы данных, поэтому я переместил раскадровку из Window.Resources в ресурс элемента в этой единственной таблице данных.Это также не удалось.

Как мне это сделать?

1 Ответ

0 голосов
/ 03 января 2019

Если честно, то, что вам действительно нужно сделать, это реализовать DataTemplateSelector

http://www.wpftutorial.net/datatemplates.html

...