【发布时间】:2015-03-27 03:30:18
【问题描述】:
我正在构建一个 WPF 应用程序,其中包含将商品添加到购物车的操作。如下定义的DataGrid 绑定到Products 的集合,并且每行都有一个Button。现在,当单击Button 时,我如何知道哪个 Product 对象是针对的?
<DataGrid Grid.Row="1" ItemsSource="{Binding }" IsReadOnly="True" IsSynchronizedWithCurrentItem="True"
AutoGenerateColumns="False" TextBlock.FontSize="20" CanUserSortColumns="True" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Header 1" Binding="{Binding ID}" Width="2*" SortMemberPath="{Binding ID}"/>
<DataGridTextColumn Header="Header 2" Binding="{Binding Name}" Width="2*" SortMemberPath="{Binding Name}"/>
<DataGridTemplateColumn Header="Add To Cart" Width="2*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Content="Click To Add"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
你想用 MVVM 方式做吗?
-
@paul,谢谢。刚刚也看到了那个帖子。
-
@Sajeetharan paul 的链接给了我一个很好的解决方案。只是好奇,MVVM 的方式是怎样的?
-
我认为你可以重写 Product 类并有一个方法来处理 buttonClick。因此,当您为 datagridrowButtonClick 创建命令时,它将绑定到您在 ProductClass 中的方法