如何在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}"/>
如何在项目模板中使用按钮事件
在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