我有一个列表框,它将数据绑定到DataTable,现在我需要访问特定的List Item,比如说第5个,来自源代码:
<ListBox Grid.Column="1" ItemsSource="{Binding ElementName=_this, Path=AllMainCategoriesTable}" HorizontalAlignment="Center" BorderBrush="Transparent" Background="Transparent" x:Name="lbMainCategories">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<RadioButton Grid.Column="0" Content="{Binding Path=main_category_name}" VerticalAlignment="Center" GroupName="grpMainCategory" x:Name="rdbEnableDisable" />
<Label Grid.Column="1" Width="30" Background="Transparent" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
这是我访问每个listitem的foreach循环,但我可以将liSelectedMainCategory强制转换为ListItem ...我做错了什么????
foreach (ListItem liSelectedMainCategory in lbMainCategores.Items)
{ }
答案 0 :(得分:1)
您正在使用Items属性,它是容器的集合。该集合中的元素不会按照您想要的方式进行转换。考虑使用像这个片段......
ICollectionView icv = CollectionViewSource.GetDefaultView(listBox1.Items);
foreach (var v in icv)
{
var lbi = v as ListBoxItem;
if (lbi != null)
{
var s = lbi.Content; // what you are after is here...
}
}