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; }
}
- 1 回答
- 0 關注
- 140 瀏覽
添加回答
舉報