所以我使用MVVM光来开发UWP应用程序,我想在ListView中的每个项目中放置一个AppBarButton。我的项目模板代码如下:
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="25"/>
<RowDefinition Height="25"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="40"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding title}" Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<TextBlock Text="{Binding uniqueID}" Grid.Row="1" HorizontalAlignment="Left" VerticalAlignment="Center"/>
<StackPanel Grid.Column="1" Grid.RowSpan="2" Width="40" Padding="0,4">
<AppBarButton Icon="Delete" IsCompact="True" Background="Red" Width="39" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<ie:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="Click">
<ic:InvokeCommandAction Command="{Binding DataContext.DeleteItem, ElementName=page}" CommandParameter="{Binding}"/>
</ic:EventTriggerBehavior>
</ie:Interaction.Behaviors>
</AppBarButton>
</StackPanel>
</Grid>
</DataTemplate>
我在页面前面的另一个AppBarButton做了同样的事件触发器绑定,它不在ListView中,并且它工作得非常好。我设置引用的命令与设置前一个命令的方式相同。页面的DataContext设置正确,我通过在其他对象上绑定它来验证其他地方。要使用此格式执行此操作,我将引用:Mvvm Light UWP Index Of Listitem When Button In ListItem Is Pressed
我的问题是,当我将下面的部分取消注释时,我从visual studio得到以下错误。
<ie:Interaction.Behaviors>
<ic:EventTriggerBehavior EventName="Click">
<ic:InvokeCommandAction Command="{Binding DataContext.DeleteItem, ElementName=page}" CommandParameter="{Binding}"/>
</ic:EventTriggerBehavior>
</ie:Interaction.Behaviors>
Collection属性'__implicit_items'为空。
有没有人知道我做错了什么?
非常感谢!!
答案 0 :(得分:0)
我最终使用AppBarButton的Command参数绑定到我在ViewModel中的命令。删除Interaction.Behaviors
并在XAML参数中使用此版本。
<AppBarButton Icon="Delete" Command="{Binding DataContext.DeleteCourse, ElementName=page}"
CommandParameter="{Binding}" />