【问题标题】:C# Windows Universal App ListView Selected Item ContentC# Windows 通用应用 ListView 选定项内容
【发布时间】:2015-06-15 22:44:01
【问题描述】:

我正在构建一个通用 Windows 应用程序并使用 ListView,点击后我似乎无法获取所选项目的文本/项目详细信息。..

我的 XAML 代码:

            <ListView Name="listviews" Margin="10,172,10,0" Tapped="listviews_Tapped" SelectionChanged="listviews_SelectionChanged">
        <ListView.ItemTemplate>
            <DataTemplate>

                <StackPanel>
                    <TextBlock Text="{Binding Bookings.ID}" Visibility="Collapsed" />
                    <TextBlock>
                        <Run Text="{Binding Bookings.first}" FontSize="24"></Run>
                        <Run Text="{Binding Bookings.last}" FontSize="32"></Run>
                    </TextBlock>
                    <TextBlock Tag="{Binding Bookings.ID}">
                        <Run Text="Total: "/>
                        <Run Text="{Binding Bookings.pax}" />
                        <Run Text=" - M: "/>
                        <Run Text="{Binding Bookings.total_male}"></Run>
                        <Run Text=" / F: "/>
                        <Run Text="{Binding Bookings.total_female}"></Run>
                    </TextBlock>
                    <ToggleSwitch x:Name="toggleSwitch1" OnContent="Checked-in" OffContent="Waiting" />
                </StackPanel>
            </DataTemplate>
        </ListView.ItemTemplate>
    </ListView>

我尝试使用 Tapped & SelectionChanged 但似乎无法获取数据...有什么建议吗?

谢谢!

【问题讨论】:

  • 您能否详细解释一下问题所在。我没有发现您提供的 XAML 有任何问题
  • 当我允许点击一个项目时,我无法获取所选项目的名称/信息。
  • 再次。请提供更多信息。你能显示你正在使用的代码吗

标签: c# xaml listview windows-phone-8.1 win-universal-app


【解决方案1】:

如果你想在 ItemClick 事件上捕获它,你必须将 ListView 的 ItemClickEnabled 属性设置为 True 并将 SelectionMode 设置为 none。

之后,在 ItemCLick 事件处理程序的第二个参数(通常是 e 参数)中,您可以使用 e.ClickedItem 属性捕获您的模型。

不要忘记将其投射到您的模型中:

var myClickedItem = e.ClickedItem as Bookings

【讨论】:

  • 可悲的是 e.ClickedItem 在 Visual Studio 2015 C# 通用应用程序中似乎不存在...
  • 是的,我敢肯定 :) 这与您的 Visual Studio 版本无关。ListView 和 GridView 在这里描述了 ItemClickEventArgs。 msdn.microsoft.com/en-us/library/windows/apps/…
  • 不幸的是,它似乎不适用于 Windows 10/Phone 10-Universal。
【解决方案2】:

请尝试将此添加到您的 Page.cs 文件中:

void listviews_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    Bookings SelectedBook = (Bookings)listviews.SelectedItem;
    var abc = SelectedBook.ID;
}

现在您可以使用 SelectedBook.xyz 访问 Bookings 类型对象的所有属性

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-23
    • 2019-07-25
    • 2015-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-22
    • 1970-01-01
    相关资源
    最近更新 更多