从WPF ListView中的Button传递值

时间:2010-10-01 16:17:49

标签: wpf xaml listview

我有一个我在WPF Listview中显示的集合。我将在每一行中都有一个编辑按钮,当点击它时,需要将ID传递给屏幕上的另一个控件。我不打算进行编辑,所以我没有使用Gridview。

如何将此ID传递给我的其他控件?

目前我的XAML看起来像这样。

<ListView Name="uxPackageGroups" ItemsSource="{Binding PackageGroups}" BorderThickness="0" Grid.Row="6" Grid.Column="1" Width="300" BorderBrush="#FF0000E8">
<ListView.ItemTemplate>
    <DataTemplate>
        <StackPanel Name="uxStackPanel" Orientation="Horizontal">
            <Button Content="Edit" Width="50" />
            <Label Content="{Binding Name}" Height="20" Margin="0" Padding="0"/>
        </StackPanel>
    </DataTemplate>
</ListView.ItemTemplate>

这位WPF新手提前感谢你!

3 个答案:

答案 0 :(得分:4)

您正在使用数据绑定,因此非常简单。在响应按钮单击的代码中,获取对该按钮的引用并检查其DataContext属性。这将引用您绑定它的基础对象。

protected void EditButton_Click(object sender, RoutedEventArgs e)
{
   TextBox textBox = (TextBox)sender;

   int id =  ((TheBounObjectType)textBox.DataContext).Id;
}

答案 1 :(得分:3)

如果您不想创建命令,可以使用按钮的“Tag”属性:

<Button Content="Edit" Width="50" Tag={Binding} />

<Button Content="Edit" Width="50" Tag={Binding ID} />

然后在事件处理程序中引用按钮的标记属性。

答案 2 :(得分:2)

命令参数适用于此:

 <Button Content="Edit" Width="50" 
      Command="{some command here}" 
      CommandParameter="{Binding ID}" />

对于“此处的某些命令”部分,请确保您是declaring a command