在Windows Phone 8.1的c# GridView中访问e.c rekeditem对象的值

本文关键字:访问 rekeditem 对象 GridView Phone Windows | 更新日期: 2023-09-27 18:16:43

我正在为客户端构建一个Windows Phone 8.1应用程序,并且遇到了一些我无法找到答案的东西,因此有了这个问题。我提前道歉,因为这可能是很明显的事情,我没有注意到。

我有一个GridView绑定到供应商列表从我的数据模型。我可以按照计划从网格中选择/单击返回值。 XAML精华:

<GridView x:Name="VendorsGridView" 
              ItemsSource="{Binding}"
              Grid.Row="1"
              Margin="10,8,10,12"
              Foreground="White"     
              SelectionMode="Single"
              IsSwipeEnabled="False"
              ItemClick="VendorsGridView_ItemClick"
              IsItemClickEnabled="True"
              ItemTemplate="{StaticResource VendorTemplate}">
    </GridView>
</Grid.RowDefinitions>
                <TextBlock Text="{Binding StrVendor}" 
                           Name="VNo"
                           Grid.Row="0"
                           Margin="0,0,0,0" 
                           VerticalAlignment="Top"
                           HorizontalAlignment="Center"
                           FontSize="18"
                           FontWeight="SemiBold"/>
                <TextBlock Text="{Binding StrVName}" 
                           Name="VName"
                           Grid.Row="1"
                           Margin="0,0,0,0" 
                           VerticalAlignment="Center" 
                           TextWrapping="Wrap"
                           FontSize="14"/>

如果我在调试窗口中检查e.c rekeditem,我可以看到我试图找到的值(StrVendor或供应商编号)。然后设计将其写回静态表,以便在查看其他数据时作为默认值使用。

调试窗口输出:

e.ClickedItem
{MOQ_v301.ViewModel.VendorViewModel}
base: {MOQ_v301.ViewModel.VendorViewModel}
IsDirty: true
isDirty: true
StrVendor: "40520"
strVendor: "40520"
StrVName: "Forest Garden PLC"
strVName: "Forest Garden PLC"

我的问题是如何获得捕获到字符串变量的供应商编号来实现它?

在Windows Phone 8.1的c# GridView中访问e.c rekeditem对象的值

因为您的网格绑定到一个模型,所以您通过单击获得该模型的1项。因此,只需将该项目投射到模型并获得供应商编号……不确定实际的模型类是什么,但假设它是VendorViewModel的代码应该是:((VendorViewModel)e.ClickedItem)。StrVendor将给你实际的供应商编号。

最好检查你是否真的得到了一个模型,所以最终的代码可能如下所示:

if(e.ClickedItem is VendorViewModel)
{
   var vendornr = ((VendorViewModel)e.ClickedItem).StrVendor;
}