从LongListSelector项中获取值
本文关键字:获取 LongListSelector | 更新日期: 2023-09-27 18:30:01
我用这个模板填充我的LongListSelector:
<DataTemplate x:Key="LongListSelectorItemTemplate">
<StackPanel Orientation="Horizontal" Margin="4,4">
<Grid Tap="Grid_Tap" x:Uid="{Binding Id}">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Image Grid.RowSpan="3" Width="150" Height="60" Source="{Binding Logo}" VerticalAlignment="Center" Margin="0,0,15,0"/>
<TextBlock Grid.Column="1" Text="{Binding NazwaSklepu}" FontFamily="/Okazjum;component/Fonts/Fonts.zip#Open Sans" VerticalAlignment="Center" HorizontalAlignment="Left" Foreground="Black" FontSize="32"/>
<Image Grid.Column="1" Grid.Row="1" Source="1.0_Images/Vector Smart Object.png" VerticalAlignment="Center" HorizontalAlignment="Left" />
<TextBlock Grid.Column="1" Grid.Row="1" Text="{Binding GodzinyOtwarcia}" FontFamily="/Okazjum;component/Fonts/Fonts.zip#Open Sans Light" VerticalAlignment="Center" HorizontalAlignment="Left" FontSize="14" Foreground="Gray" Margin="25,0,0,0" />
<Image Grid.Column="1" Grid.Row="2" Source="1.0_Images/Vector Smart Object copy 3.png" VerticalAlignment="Center" HorizontalAlignment="Left"/>
<TextBlock Grid.Column="1" Grid.Row="2" Text="{Binding Adres}" FontFamily="/Okazjum;component/Fonts/Fonts.zip#Open Sans Light" VerticalAlignment="Center" HorizontalAlignment="Stretch" FontSize="14" Foreground="Gray" Margin="25,0,0,0" x:Name="txtAdres"/>
</Grid>
</StackPanel>
</DataTemplate>
正如你所看到的,我将Tap事件添加到我的网格和绑定id中。
如何在C#事件代码中获取此Id?
我找到了临时的方法。我把Id放在Tag中,而不是x:Uid并使用了以下代码:
private void Grid_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
int id = -1;
var element = (FrameworkElement)sender;
if (int.TryParse((Grid)element.Tag + "", out id)) {
... my code
}
}