0
因此,我使用MVVM light開發UWP應用程序,並且希望在ListView中的每個項目中放置一個AppBarButton。我的項目模板代碼如下:ListView DataTemplate中的MVVM 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>
我這樣做是相同的事件觸發結合前面,這不是一個ListView內頁的其他AppBarButton和它的工作完美的罰款。我已經設置了引用的命令,就像我設置較早的命令一樣。該頁面的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>
集合屬性 '__implicit_items' 爲空。
有沒有人有任何想法我做錯了什麼?
非常感謝!
BTW AppBarButton從按鈕派生,肯定有地方可以綁定命令沒有直接互動 –
這實際工作命令的財產!非常感謝。我不知道爲什麼我認爲我需要這個來獲得一個命令參數......如果你將它作爲答案發布,我會將其標記爲解決方案。 –