UWP C#获取项目网格点击

时间:2016-01-18 19:00:40

标签: c# uwp

我有一个图像列表,然后我创建一个网格并插入一个图像和2个文本,所以网格看起来像这样:

-----------------------------------
|    | Text 1
|    |   Text 2
-----------------------------------

这些网格只是堆叠在一起。

制作网格的代码:

img = new Image();
            img.Source = new BitmapImage(new Uri(this.BaseUri, "/Assets/test/Images/test.png"));
            img.HorizontalAlignment = HorizontalAlignment.Center;
            img.VerticalAlignment = VerticalAlignment.Center;
            img.Width = 30;
            img.Height = 30;

            username = new TextBlock();
            username.Name = "1"
            username.Tapped += "tapped_func";
            username.Text = "Text 1";
            username.FontSize = 24;

            txt = new TextBlock();
            txt.Text = "Text 2";
            txt.FontSize = 14;

            var grid_item = new Grid();

            RowDefinition r0 = new RowDefinition();
            r0.Height = new GridLength(0, GridUnitType.Auto);
            RowDefinition r1 = new RowDefinition();
            r1.Height = new GridLength(0, GridUnitType.Auto);

            ColumnDefinition c0 = new ColumnDefinition();
            c0.Width = new GridLength(.50, GridUnitType.Star);

            ColumnDefinition c1 = new ColumnDefinition();
            c1.Width = new GridLength(5, GridUnitType.Star);

            grid_item.Margin = new Thickness(10);

            grid_item.RowDefinitions.Add(r0);
            grid_item.RowDefinitions.Add(r1);
            grid_item.ColumnDefinitions.Add(c0);
            grid_item.ColumnDefinitions.Add(c1);

            Grid.SetColumn(img, 0);
            Grid.SetRowSpan(img, 2);

            Grid.SetColumn(username, 1);

            Grid.SetColumn(txt, 1);
            Grid.SetRow(txt, 1);

            grid_item.Children.Add(img);
            grid_item.Children.Add(username);
            grid_item.Children.Add(txt);

图像位于左侧,2个文本块位于右侧。目前我将图像的ID设置为文本1的名称,然后当用户单击文本1时,我可以下载图像。

有没有办法如果用户点击grid,text1或text2它会调用该函数?我在考虑

Username.Parent

但我不知道'家长'确切地说,它会得到网格吗?

1 个答案:

答案 0 :(得分:1)

我认为你正在努力处理这个事件。

对我来说,我会创建一个List,将列表绑定到列表视图,其项目模板与您的布局类似。 Item对象将保存图像的ID。

然后,我处理Grid的click事件(所以无论用户点击哪个,处理程序都会被触发),我得到sender对象,获取发送者的DataContext(绑定到ListViewItem的Item)。使用项目中的ID下载图像。