【发布时间】:2015-10-07 15:10:49
【问题描述】:
在我的 Windows 8.1/Windows Phone 8.1 应用程序中,我有一个 GridView,我想在选择一个项目后更改我的 VisualState。我可以通过这样的行为轻松做到这一点:
<GridView IsItemClickEnabled="True" ItemsSource="{Binding Collections}" SelectedItem="{Binding SelectedItem,Mode=TwoWay}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="SelectionChanged">
<Core:GoToStateAction StateName="NextVisualState"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
<GridView.ItemTemplate>
<DataTemplate >
<Grid Width="80" Height="80">
<TextBlock Text="{Binding ItemName}" HorizontalAlignment="Center" VerticalAlignment="Center"></TextBlock>
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<ItemsWrapGrid Orientation="Horizontal" MinWidth="150"></ItemsWrapGrid>
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
当我的项目已被选中时会出现问题(用户可以在此 VisualState 上,并且已通过绑定或其他方式选择了项目),如果用户单击已选择的项目,我希望触发 SelectionChanged 事件(这样他就可以进入下一个 VisualState)。
我尝试更改 ItemClick 事件的 VisualState,但在选择项目之前触发了该事件,因此它不起作用。
【问题讨论】:
标签: xaml gridview mvvm mvvm-light selectionchanged