是否存在用于保存事件的e.ClickedItem

时间:2014-11-10 12:14:57

标签: c# wpf xaml windows-phone-8

您好,在我点击的活动中,我可以获得点击此按钮的详细信息

 private async void BedGridView_ItemClick(object sender, ItemClickEventArgs e)
    {
     CommonVariables.PatientDetailsDict["bed_number"] = (e.ClickedItem as BedModelV2).bed_number;
                                    }

我想知道我的举办活动是否有类似的东西,所以我可以获得所选项目的信息。由于以下代码不适用于HoldingState或originalsource。

 private async void BedGridView_Holding(object sender, HoldingRoutedEventArgs e)
    {
     CommonVariables.PatientDetailsDict["bed_number"] = (e.OriginalSource as BedModelV2).bed_number;

}

1 个答案:

答案 0 :(得分:0)

我猜你正在使用WP8.1,因为WP8支持GridView

要回答你的问题,你总是可以获取你的GridView的SelectedItem,我可以通过名称引用它或者在hold事件中转换sender对象,如下所示:

<!-- define the gridview -->
<GridView x:Name="myGV" Holding="myGV_Holding"></GridView>
private void myGV_Holding(object sender, HoldingRoutedEventArgs e)
{
     var selectedItem = this.myGV.SelectedItem;                 // reference by name
     // var selectedItem = (sender as GridView).SelectedItem;   // reference by converting the sender

}

获得.SelectedItem后,它将成为一个基于ViewModel的对象,因此您可以像原始代码一样将其转换回来。

CommonVariables.PatientDetailsDict["bed_number"] = (selectedItem as BedModelV2).bed_number;