Microsoft.Toolkit.Uwp.UI.DataGrid - 如何通过单击单元格的按钮获取单元格值

Microsoft.Toolkit.Uwp.UI.DataGrid - how to get cell value from button click on the cell

使用Microsoft.Graph, I'm populating UWP Tookit DataGrid如下。

问题:如何在单元格上的按钮单击事件中获取所选单元格的值?

填充网格的代码:

using Microsoft.Graph
..........

// Get the events
        IUserEventsCollectionPage events = await graphClient.Me.Events.Request()
            .Select("subject,organizer,start,end")
            .OrderBy("createdDateTime DESC")
            .GetAsync();

MainPage.Xaml 与 DataGrid:

<Page
        ....>

    <Grid>
        <controls:DataGrid x:Name="EventList" Grid.Row="1" AutoGenerateColumns="False">
            <controls:DataGrid.Columns>
                <controls:DataGridTextColumn Header="Organizer" Width="SizeToCells" Binding="{Binding Organizer.EmailAddress.Name}" FontSize="20" />
                <controls:DataGridTemplateColumn Header="Subject">
                    <controls:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <HyperlinkButton x:Name="hlBtnFileDownload" Content="{Binding subject}" Click="hlBtnFileDownload_Click"></HyperlinkButton>
                        </DataTemplate>
                    </controls:DataGridTemplateColumn.CellTemplate>
                </controls:DataGridTemplateColumn>
                ..................
                ..................
            </controls:DataGrid.Columns>
        </controls:DataGrid>
    </Grid>
</Page>

按钮点击事件:

虽然代码应该类似于以下内容(因为我在 WPF 数据网格中使用过它)。但是在这里我不清楚这里的 ClassName 应该是什么,因为上面查询中使用的 IUserEventsCollectionPage 是一个接口,而 online search 没有提供关于这个接口的太多信息。

private void hlBtnFileDownload_Click(object sender, RoutedEventArgs e)
{
    ClassName classObj = dataGridName.SelectedItem as ClassName;
    string id = classObj.ID;
}

更新:

为了回答用户 @ Martin Zikmund 的问题,DataGrid ItemsSource 设置如下:

EventList.ItemsSource = events.CurrentPage.ToList();

此外,我在上面的按钮单击事件中尝试了以下操作,但是当单击单元格时,它 returns eventitem 下面为 null。同样,使用 Event eventitem = (sender as FrameworkElement).DataContext as Event; 也 return eventitem 作为 null.

List<Event> eventitem = (sender as FrameworkElement).DataContext as List<Event>;
            string st = eventitem[1].ToString();

绑定到单个单元格的项目不是 List<Event>,而是 Event,因此以下应该有效:

var event = (sender as FrameworkElement).DataContext as Event;