【问题标题】:Grid View Items contents in xaml (windows store app)xaml 中的网格视图项目内容(Windows 商店应用程序)
【发布时间】:2013-05-03 16:15:38
【问题描述】:

如何在网格视图中获取单击的网格项的内容...例如,网格项有一个文本框...当单击网格视图项时如何获取此文本框的内容 vie ItemClickEventArgs ? 谢谢

【问题讨论】:

    标签: c# xaml gridview windows-store-apps


    【解决方案1】:

    试试这个代码。

    <GridView x:Name="gv" SelectionChanged="gvSelectionChanged">
        <GridViewItem>
            <TextBox x:Name="txtOne" />
        </GridViewItem>
        <GridViewItem>
            <TextBox x:Name="txtTwo" />
        </GridViewItem>
    </GridView>
    
    private void gvSelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        var SelectedText = ((TextBox)((GridViewItem)gv.SelectedItem).Content).Text;
    }
    

    【讨论】:

      【解决方案2】:

      假设您在 GridView 中使用 ItemsSource,您可以使用 e.ClickedItem 来获取您单击的 GridViewItem 的 DataContext。如果你想要实际的 GridViewItem,你可以使用

      GridViewItem item = (sender as GridView).ItemContainerGenerator.ContainerFromItem(e.ClickedItem) as GridViewItem;
      

      然后你可以根据需要使用 VisualTreeHelper.GetChild 进行挖掘(比如找到一个 TextBox)。

      【讨论】:

        【解决方案3】:

        如果您使用 DataTemplate 在 GridView 中显示项目,我发现最简单的方法是在包含所有项目的 DataTemplate 控件上捕获 Tapped、Hold 等事件。

        如果你可以编码

        private void ItemTapped(object sender, TappedRoutedEventArgs e)
        {       
            var clickedItem = (sender as FrameworkElement).DataContext;
        }
        

        这将为您提供被点击项目中的对象。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-07-05
          • 1970-01-01
          相关资源
          最近更新 更多