如何识别在Window Store应用程序中动态分配的按钮中单击的按钮

本文关键字:按钮 应用程序 单击 动态分配 Store Window 何识别 识别 | 更新日期: 2023-09-27 17:58:10

我正在开发Windows 8应用程序。按钮在ListView中动态填充。我已经创建了一个点击事件,但我如何确定选择了哪个按钮?我写的代码也不起作用,这里是

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>

寻求帮助。

如何识别在Window Store应用程序中动态分配的按钮中单击的按钮

在按钮点击事件处理程序中,使用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;
}
var button = (Button)sender;
dynamic viewModel = button.DataContext;
pageTitle.Text = viewModel.UName;