我有一个我在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新手提前感谢你!
答案 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。