2010-10-01 38 views
3

我有一個集合,我在WPF Listview中顯示。每行都會有一個編輯按鈕,點擊時需要將ID傳遞給屏幕上的另一個控件。我不會進行編輯,所以我沒有使用Gridview。從WPF ListView中的Button傳入值

如何將此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

有關此問題的更多信息,請參閱下面的「答案」。謝謝! – BillyPilgrim 2010-10-06 23:56:00

回答

3

您正在使用數據綁定,所以它很容易。在響應按鈕單擊的代碼中,獲取對按鈕的引用並檢查其DataContext屬性。這將引用您所綁定的基礎對象。

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

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

命令參數有利於這樣的:

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

對於 「一些命令在這裏」 的一部分,確保您declaring a command

3

如果你不想去儘可能創造的命令去做,你可以使用該按鈕的「標籤」屬性:

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

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

,然後在事件處理程序中引用按鈕的標籤屬性。