【问题标题】:Pass text of Listview.ItemTemplate to antoher frame uwp将 Listview.ItemTemplate 的文本传递到另一个框架 uwp
【发布时间】:2017-08-24 04:59:30
【问题描述】:

我必须将 Text={Binding Id}of textBlock idName 从一个框架传递到另一个框架。文本是来自 SQLite 数据库的 Id。我有一个定义项目的 Listview.ItemTemplate

<ListView.ItemTemplate>
                    <DataTemplate>
                        <Grid Height="Auto" Margin="0,5">
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="Auto"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>

                            <StackPanel Grid.Column="1" VerticalAlignment="Top" Margin="12,0,0,0">

                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="Auto"/>
                                        <ColumnDefinition Width="*"/>
                                    </Grid.ColumnDefinitions>
                                    <TextBlock x:Name="idName" Text="{Binding Id}" FontSize="12" VerticalAlignment="Center" Grid.Column="0" Margin="5,0,12,0"/>
                                    <RelativePanel Grid.Column="1">
                                        <TextBlock x:Name="titleBlock" Text="{Binding Title}" FontSize="25" HorizontalAlignment="Left" VerticalAlignment="Top"/>
                                        <TextBlock x:Name="directorLabel" Text="REGISTA:" FontSize="20" RelativePanel.Below="titleBlock" FontWeight="Light"/>
                                        <TextBlock x:Name="directorBlock" Text="{Binding Director}"  FontSize="20" RelativePanel.Below="titleBlock" RelativePanel.RightOf="directorLabel"/>
                                        <TextBlock x:Name="yearLabel" Text="ANNO:" FontSize="20" FontWeight="Light" RelativePanel.RightOf="directorBlock" Margin="12,0,0,0" RelativePanel.Below="titleBlock"/>
                                        <TextBlock x:Name="yearBlock" Text="{Binding Year}" FontSize="20" RelativePanel.Below="titleBlock" RelativePanel.RightOf="yearLabel"/>
                                    </RelativePanel>
                                </Grid>
                            </StackPanel>
                        </Grid>
                    </DataTemplate>
                </ListView.ItemTemplate>

我在这背后的代码中使用:

this.Frame.Navigate(typeof(FilmInfo), idName.Text);

idName.Text 是一个ItemTemplate。

我该怎么做?

【问题讨论】:

    标签: c# sqlite listview binding uwp


    【解决方案1】:

    我假设必须以某种方式在 ListView 中选择该项目才能对其执行操作...如果是这样,您可以直接使用该项目。

    YourClassName selectedFilm = YourListView.SelectedItem as YourClassName;
    If(selectedFilm != null)
    {
        this.Frame.Navigate(typeof(FilmInfo), selectedFilm.Id);
    }
    

    评论后更新

    好的...如果您正在使用项目单击事件,您可以执行相同的操作...

    private void ItemClickEvent(object sender, ItemClickEventArgs e)
    {
        YourClassName selectedFilm = e.ClickedItem as YourClassName;
        if(selectedFilm != null)
        {
            this.Frame.Navigate(typeof(FilmInfo), selectedFilm.Id);
        }
    }
    

    【讨论】:

    • 我使用列表视图的 XAML 定义中的 ItemClick 属性来选择一个项目和一个视图模型来连接类。这是我用来从数据库生成列表视图的代码:FilmListView.ItemsSource = null; itemsViewModel = new FilmItemsViewModel(); items = itemsViewModel.GetItems(); FilmListView.ItemsSource = items;
    • 我添加了一些适用于您的场景的代码。
    猜你喜欢
    • 2014-06-28
    • 1970-01-01
    • 2016-08-07
    • 1970-01-01
    • 1970-01-01
    • 2011-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多