我在这个问题上搜遍了整个互联网,但我的UWP申请无法取得进展。
我有ListView
DataTemplate
:
<ListView x:Name="lvEszTmplt" Margin="50,61,0,0" ItemClick="lvEszTmplt_ItemClick_1" SelectionChanged="lvEszTmplt_SelectionChanged_1" >
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Margin="0,8" x:Name="spItem" >
<TextBlock x:Name="tbAzonosito" >
<Run Text="Azonosító: " Foreground="DarkGray"/>
<Run Text="{Binding Azonosito}"
Foreground="DarkGray"
/>
</TextBlock>
<TextBlock x:Name="tbMegnevezes" >
<Run Text="Megnevezés: " Foreground="DarkGray"/>
<Run Text="{Binding Megnevezes}"
Foreground="DarkGray"/>
</TextBlock>
<TextBlock x:Name="tbSerial" >
<Run Text="Serial: " Foreground="DarkGray"/>
<Run Text="{Binding Serial}"
Foreground="DarkGray"/>
</TextBlock>
<TextBlock x:Name="tbSorszam" >
<Run Text="Sorszám: " Foreground="DarkGray"/>
<Run Text="{Binding Sorszam}"
Foreground="DarkGray"/>
</TextBlock>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
在ListView
中,“Azonosito”是ID列。
当我点击Item
时,它应该转到另一个Frame
并从ListView
获取ID,并使用ID中的数据加载Deatails视图。
我该怎么做?
感谢您帮助我!
答案 0 :(得分:3)
使用ItemClickEventArgs.ClickedItem
事件的ItemClick
属性来阅读点击的项目:
private void lvEszTmplt_ItemClick_1(object sender, ItemClickEventArgs e)
{
var item = (ItemModel)e.ClickedItem;
var id = item.Azonosito;
}
答案 1 :(得分:0)
@Krzysztof Bracha有一个很好的答案。但是我看到你忘了添加IsItemClickEnabled属性。
您可以使用IsItemClickEnabled=true
启用ItemClick。
您应该将源绑定到ListView。
您也可以使用x:bind来绑定数据。
如果你的来源类型是ObservableCollection,你可以将代码用作@Krzysztof Bracha。
如果你需要在ListView中获得控件,你可以使用VisualTreeHelper.GetChild(DependencyObject reference, int childIndex);
来获取它。
请参阅:https://docs.microsoft.com/en-us/windows/uwp/data-binding/data-binding-in-depth