一。新建一个自定义IndexConverter类,实现接口IValueConverter。
public class IndexConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
ListViewItem item = (ListViewItem)value;
ListView listView = ItemsControl.ItemsControlFromItemContainer(item) as ListView;
int index = listView.ItemContainerGenerator.IndexFromContainer(item) + 1;
return index.ToString();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
二。 在xmal中添加资源。
<UserControl.Resources>
<local:IndexConverter x:Key="MyIndexConverter"/>
</UserControl.Resources>
三。在listview中添加序号绑定。
<ListView x:Name="Inspect_listview" SelectedIndex="{Binding SampleIndex}" Background="#FF1E1E20" ItemsSource="{Binding InspectItemList}" ItemContainerStyle="{StaticResource ListViewItemStyle}" FontSize="16" Foreground="White">
<ListView.View>
<GridView>
<!- 这句为绑定序号->
<GridViewColumn Header="No" Width="40" DisplayMemberBinding ="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListViewItem}}, Converter={StaticResource MyIndexConverter}}" />
<GridViewColumn Header="Serial No" Width="60" DisplayMemberBinding ="{Binding SerialNo}" />
<GridViewColumn Header="Begin/End Time" Width="120" DisplayMemberBinding ="{Binding BeginEndTime}" />
<GridViewColumn Header="Machine" Width="80" DisplayMemberBinding ="{Binding MachineResult}" />
<GridViewColumn Header="Defect" Width="100" DisplayMemberBinding ="{Binding Defect}" />
<GridViewColumn Header="Review" Width="90" DisplayMemberBinding ="{Binding }" />
</GridView>
</ListView.View>
</ListView>