2014-04-14 44 views
0

我正在開發Windows 8應用程序。按鈕在ListView中動態填充。我創建了一個點擊事件,但是如何識別哪個按鈕被選中?我寫的代碼也沒有工作,這是如何確定在Window Store應用程序中動態分配的按鈕中點擊了哪個按鈕

TextBlock lblUserName = new TextBlock(); 
lblUserName = (TextBlock)lstPeoples.FindName("lblUserName"); 
pageTitle.Text = lblUserName.Text; 

的XAML代碼列表視圖如下

<ListView x:Name="lstPeoples" HorizontalAlignment="Left" Height="571" Margin="34,47,0,0" Grid.Row="1" VerticalAlignment="Top" Width="455" SelectionMode="Multiple" Background="{StaticResource ComboBoxItemDisabledForegroundThemeBrush}" BorderBrush="White"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <Grid Height="80"> 
        <Grid.ColumnDefinitions> 
         <ColumnDefinition Width="120" /> 
         <ColumnDefinition Width="Auto"/> 
        </Grid.ColumnDefinitions> 
        <Image x:Name="imgUser" Height="150" Source="{Binding Image}" /> 
        <StackPanel Grid.Column="1" HorizontalAlignment="Left" VerticalAlignment="Bottom"> 
         <TextBlock x:Name="lblUserName" Text="{Binding UName}" FontStyle="Italic" VerticalAlignment="Top" FontSize="18" Foreground="White" Width="400"/> 
        </StackPanel> 
        <TextBlock Grid.Column="2" VerticalAlignment="Top" FontSize="25" FontWeight="Bold" Foreground="White" Text="{Binding Name}"/> 
        <Button Grid.Column="2" HorizontalAlignment="Center" VerticalAlignment="Bottom" Content="Add Friend" Click="Button_Click"/> 
       </Grid> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

尋求幫助。

回答

1

在按鈕單擊事件處理程序中,使用sender對象參數來定位Button控件,並通過視覺項目查找TextBlock。

例如,

private void Button_Clicked(object sender, RoutedEventArgs e) 
{ 
    var button = (Button)sender; 
    var grid = (Grid)button.Parent; 
    var lblUserName = (TextBlock)grid.FindName("lblUserName"); 
    pageTitle.Text = lblUserName.Text; 
} 
+0

工作!非常感謝。 –

1
var button = (Button)sender; 
dynamic viewModel = button.DataContext; 
pageTitle.Text = viewModel.UName; 
+0

我正在考慮將名稱綁定到viewmodel上的查找屬性,但這更好! – mydogisbox

+0

嗯,我實際上將它轉換爲視圖模型類型,而不是使用動態或更好 - 在視圖模型上使用命令。更大的問題是設計 - 在ListView中的每個項目上都有一個單獨的按鈕。我不會這麼做 - 這是浪費空間。 –

+0

這實際上取決於每件物品代表什麼。我目前正在研究一個應用程序,其中每個listview項目可以有500多個按鈕,但我當然同意使用命令vs投送發件人。 – mydogisbox

相關問題