亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何識別gridview中哪個項目中的元素

如何識別gridview中哪個項目中的元素

C#
倚天杖 2022-06-12 11:26:01
我使用“gridview”不僅可以“顯示”,還可以讓用戶與之交互,例如單擊特定項目內的按鈕。假設我的gridview是這樣的:<Gridview>  <Gridview.Itemtemplate>    <DataTemplate>      <StackPanel>        <Image> </Image>        <Button> </Button>      </StackPanel>   </DataTemplate></Gridview.Itemtemplate>如果我按下按鈕,gridview 中所有項目的每個按鈕都會做同樣的事情。我們如何按下按鈕并知道它屬于哪個項目?*注意:僅按下按鈕不會觸發“ItemIsSelected”事件,因為該項目沒有被點擊,它是按鈕。
查看完整描述

1 回答

?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

讓我們考慮您的項目是一個類的對象LineItem。觸發按鈕單擊后,您可以使用senderfrom click 事件參數來獲取DataContext相同的對象。


(作為 FrameworkElement 的發送者).DataContext


//小樣本


主頁.Xaml


<Page

    x:Class="App1.MainPage"

    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

    xmlns:local="using:App1"

    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"

    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"

    mc:Ignorable="d" 

    x:Name="YourPage"


    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">

    <Grid>

        <GridView x:Name="GridView">

            <GridView.ItemTemplate>

                <DataTemplate x:DataType="local:LineItem">

                    <StackPanel>

                        <TextBlock Text="{x:Bind Title}"></TextBlock>

                        <TextBlock Text="{x:Bind  description}"></TextBlock>

                        <Button Content="Action" Click="Button_Click"></Button>

                    </StackPanel>

                </DataTemplate>

            </GridView.ItemTemplate>

        </GridView>

    </Grid>

</Page>

主頁.Xaml.cs


public sealed partial class MainPage : Page

    {

        List<LineItem> MyDictionary = new List<LineItem>();

        public MainPage()

        {

            MyDictionary.Add(new LineItem() { Title = "Item1", description = "Desc1" });

            MyDictionary.Add(new LineItem() { Title = "Item2", description = "Desc2" });

            MyDictionary.Add(new LineItem() { Title = "Item3", description = "Desc3" });

            this.InitializeComponent();

            GridView.ItemsSource = MyDictionary;

        }

        private async void Button_Click(object sender, RoutedEventArgs e)

        {

            LineItem clicked_item  =(LineItem)((sender as FrameworkElement).DataContext);

            await (new MessageDialog(clicked_item.Title + " Button is clicked ")).ShowAsync();

        }

    }

    public class LineItem

    {

        public string Title { get; set; }

        public string description { get; set; }

    }


查看完整回答
反對 回復 2022-06-12
  • 1 回答
  • 0 關注
  • 140 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號