Я работаю над приложением, которое было разработано 3 года назад и с тех пор не обновлялось.Я столкнулся с ошибкой, но не могу выяснить, откуда она взялась ... Она работала, когда была выпущена первая версия, а предыдущего разработчика там уже нет.
Она находится в шаблоне данных для listBox
Мы используем эти два пространства имен:
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
и вот шаблон:
<DataTemplate x:Key="EditableSelectionDataTemplate">
<Grid x:Name="grid" Height="{DynamicResource ListBoxItemHeight}" d:DesignWidth="150">
<i:Interaction.Behaviors>
<ei:DataStateBehavior Binding="{Binding Mode=OneWay}"
Value="{Binding DataContext.EditionEntity, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBox}}}"
TrueState="EditState"
FalseState="NormalState"/>
</i:Interaction.Behaviors>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="Common">
<VisualStateGroup.Transitions>
<VisualTransition GeneratedDuration="0:0:0.2"/>
</VisualStateGroup.Transitions>
<VisualState x:Name="EditState">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="NormalGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="EditGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
<VisualState x:Name="NormalState">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="EditGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Visible}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.Visibility)" Storyboard.TargetName="EditGrid">
<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static Visibility.Collapsed}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid x:Name="NormalGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="60" />
</Grid.ColumnDefinitions>
<!-- Some stuff -->
</Grid>
<Grid x:Name="EditGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<!-- some other stuff -->
</Grid>
Поведение работает нормально, пока не попытается найти любое состояниеEditState или NormalState.Он создает исключение, которое говорит что-то вроде: «Не удается найти состояние« EditState »для типа« Сетка ». Проверьте, существует ли состояние и доступно ли оно в этом контексте».(Или на французском языке, оригинальное сообщение: «Невозможно решить проблему с именем« EditState »в типе« Сетка ». Проверка подлинности и доступность возможны как часть контекста».)
Я убедился, что он ищет состояние именно на этой самой сетке, а не где-то еще.Из того, что я собрал, он должен изучить все visualStateGroups, а затем все visualState, чтобы проверить, существует ли EditState ... что он и делает.
Есть идеи, что не так?