我想双击将项目从“购物清单”复制到“购物车”列表框。现在,我的模型对每个列表只有ObservableCollection字符串,但最终对象会变得更复杂。在WPF MVVM中,如何使用双击将项目从一个列表框转移到另一个列表框?
ViewModel使用DataTemplate映射到视图。现在,我的ViewModel上只有一个“Session”属性,它暴露了我的Model中包含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的新手,我无法弄清楚如何将项目添加到“Cart”集合中。看起来我应该能够直接从View中访问ViewModel Session.CartItems。是一个参数化命令的路要走吗?如果是这样,任何推荐的文章?
感谢您的回复。我认为一个命令是要走的路。看起来我需要一个参数与命令,但我只使用WPF中迄今为止参数较少的命令。我会尽可能研究和尝试。 –
好的。我能够得到命令(首选方式)工作。但是,首先简单地从数据上下文中获取视图模型是很好的。感谢分享这种语法;当通过数据模板映射视图模型时,我不确定如何访问它。我将这个标记作为答案,因为它有新手的提示。谢谢! –