我想双击将一个项目从“购物清单”复制到“购物车”列表框中。现在,我的模型只有每个列表的 ObservableCollection 字符串,但最终对象会变得更加复杂。
ViewModel 使用 DataTemplate 映射到视图。现在,我的 ViewModel 上只有一个“Session”属性,它在包含 ObservableCollections 的模型中公开我的 Session 对象。
我试过这个...
<ListBox Name="listBoxShopList" ItemsSource="{Binding Path=Session.Products}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource {x:Type ListBoxItem}}">
<EventSetter Event="MouseDoubleClick" Handler="ListBoxItemMouseDoubleClick"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
<ListBox Name="listBoxCart" ItemsSource="{Binding Path=Session.CartItems, UpdateSourceTrigger=PropertyChanged}"/>
从代码隐藏我确实得到了事件,我可以得到 SelectedItem。但是作为 MVVM 的新手,我无法弄清楚如何将项目添加到“购物车”集合中。看来我应该能够直接访问 ViewModel Session.CartItems ,因为 View 可以。参数化命令是要走的路吗?如果有,有推荐的文章吗?