如何在itemTemplate中获取点击事件

本文关键字:事件 获取 itemTemplate | 更新日期: 2023-09-27 18:24:09

我有一个gridView
ıt有一个项目模板(文本块、图像)和项目源。text块和图像绑定到项目源。我想向ItempTemplate添加一个按钮,但无法检测到事件处理程序。在我的.cs文件中,我看不到文本块、图像或按钮。我如何设置事件,

这是商品模板的代码

<DataTemplate x:Key="IDViewStyle">
        <Grid Width="350" Height="450" >
            <Grid.RowDefinitions>
                <RowDefinition/>
                <RowDefinition Height="40"/>
            </Grid.RowDefinitions>
            <Grid>
                <Border Background="#B2060606" />
                <Button HorizontalAlignment="Right" BorderThickness="0" x:Name="eraseButton" VerticalAlignment="Top">
                    <Image Source="/Assets/Images/erease.png" Width="90" Margin="0,-7,-15,15"/>
                </Button>
                <StackPanel Margin="0" Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
                    <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="+" VerticalAlignment="Center" Style="{StaticResource PageHeaderTextStyle}" FontSize="160" Margin="0"/>
                    <TextBlock TextWrapping="Wrap" Text="Ekle" TextAlignment="Center" Style="{StaticResource HeaderTextStyle}"/>
                </StackPanel>
                <Image  Stretch="Fill" Source="{Binding Image}"/>
            </Grid>
            <TextBlock TextWrapping="Wrap" Text="{Binding Type}" VerticalAlignment="Top" Grid.Row="1" Style="{StaticResource SubheaderTextStyle}" TextAlignment="Center"/>
        </Grid>
    </DataTemplate>

和我的.cs文件

Data.IdentityTypeCollection collection;
gView.SelectionChanged += lvIdTypes_SelectionChanged;
collection = new Data.IdentityTypeCollection();
gView.ItemsSource = collection;
gView.ScrollIntoView(collection);

和我的主页.xaml

<GridView x:Name="gView" Grid.Row="1" Grid.RowSpan="2" Margin="117,0,0,100" ItemTemplate="{StaticResource IDViewStyle}"/>

如何在项目模板中使用按钮事件

如何在itemTemplate中获取点击事件

在GridView上,您可以分配属性ItemClick="YourClickEvent",如:

    <GridView
        x:Name="itemGridView"
        IsItemClickEnabled="True"
        ItemClick="ItemView_ItemClick"></GridView>

在你的.cs文件中,事件处理程序:

 void YourClickEvent(object sender, ItemClickEventArgs e)
 {
    //your codes here
 }

请确保GridView IsItemClickEnabled设置为True All set!

如果我理解你的问题,那么这就是我在使用调试器四处查看后所做的。这是一个UWP应用程序。按钮位于"MedView"GridView中DataTemplate的网格中。以下设置ItemsSource:

List<ViewItemClass> lvil = new List<ViewItemClass>();
// create lvil
MedView.ItemsSource = lvil;

然后,我为Button添加了一个Click事件处理程序,下面是它的代码:

Button b = sender as Button;
if (b == null)
    return;
Grid g = b.Parent as Grid;
if (g == null)
    return;
ViewItemClass lvi = g.DataContext as ViewItemClass;
if (lvi == null)
    return;
// use the item