在我的程序中listbox的子控件较多,而且listbox控件的每次的index值与数据源的数据库的ID项不一致,因此需要获取来自界面的index来显示数据库的具体数据。
listbox
1 <ListBox x:Name="newlist" ItemsSource="{Binding DealTableOC}" SelectionChanged="newlist_SelectionChanged"> 2 <ListBox.ItemTemplate> 3 <DataTemplate > 4 <StackPanel Height=" 180" Orientation="Horizontal"> 5 <Rectangle Width=" 80" Height=" 80" Fill="Azure" VerticalAlignment="Top" ></Rectangle> 6 <!--<TextBlock FontSize="20" Text="{Binding DealID}"/>--> 7 <StackPanel Orientation="Vertical" Width="340"> 8 <TextBlock Text="{Binding DealTitle}" TextWrapping="Wrap" Style="{StaticResource PhoneTextExtraLargeStyle}" FontSize=" 19" Margin="12,0,0,0"/> 9 <StackPanel Orientation="Horizontal"> 10 <TextBlock Text="现价:" Style="{StaticResource PhoneTextSubtleStyle}" FontSize="18.667"/> 11 <TextBlock Text=" price" Style="{StaticResource PhoneTextSubtleStyle}" Margin="-12.1,0,12,0"/> 12 <TextBlock Text=" 原价:" Style="{StaticResource PhoneTextSubtleStyle}" /> 13 <TextBlock Text=" vaule" Style="{StaticResource PhoneTextSubtleStyle}" Margin="-12,0,12,0" /> 14 </StackPanel> 15 </StackPanel> 16 </StackPanel> 17 </DataTemplate> 18 </ListBox.ItemTemplate> 19 </ListBox>
如何在back code中获得其中的id并且传递给其他界面,参考网络上的:
获取ID
1 int m = (newlist.SelectedItem as DealTableClass).DealID;
其中DealTableClass是之前定义好的类,也就是listbox所绑定的数据类型。 但此处应注意selectedIndex是否为-1,在数据重新获取加入到listbox中以后selected会触发并返回出index为-1。在获取id的时候添加除错代码。
|
请发表评论