将按钮绑定到 DataGrid WPF 中的对象
Bind a Button to an object in DataGrid WPF
我正在构建一个 WPF 应用程序,其中包含将商品添加到购物车的操作。如下定义的 DataGrid
绑定到 Product
的集合,并且每行存在一个 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>
您可以像这样将产品绑定到 Tag
属性 of Button
:
<Button Content="Click To Add" Tag="{Binding}"/>
您将通过以下方式获得原始实体:
Product product = button.Tag as Product
我正在构建一个 WPF 应用程序,其中包含将商品添加到购物车的操作。如下定义的 DataGrid
绑定到 Product
的集合,并且每行存在一个 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>
您可以像这样将产品绑定到 Tag
属性 of Button
:
<Button Content="Click To Add" Tag="{Binding}"/>
您将通过以下方式获得原始实体:
Product product = button.Tag as Product