访问DataTemplate UWP中的TextBlock文本

时间:2017-06-06 11:22:37

标签: c# listview binding uwp

我在这个问题上搜遍了整个互联网,但我的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视图。

我该怎么做?

感谢您帮助我!

2 个答案:

答案 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