核心内容摘要
9·1芒果TV浏览器:点亮你的数字生活,开启追剧新纪元
案例一个ListBox绑定后台实体链表界面显示三个模块自定义模板实现顺序一般来说在C#的链表里从0开始我这里想让其从1开始使用了这种方法可以传递顺序到后台命令。
ListBox ItemContainerStyle{StaticResource ActionItemStyle} ItemsSource{Binding OverallActions} ScrollViewer.HorizontalScrollBarVisibilityDisabled ListBox.ItemTemplate DataTemplate Border Margin3 BorderThickness1 CornerRadius5 Grid Grid.ColumnDefinitions ColumnDefinition Width* / ColumnDefinition WidthAuto / ColumnDefinition WidthAuto / /Grid.ColumnDefinitions !-- 显示配置信息 -- StackPanel Grid.Column0 Margin10 TextBlock FontSize14 FontWeightBold Text{Binding ActionDescription} / /StackPanel !-- 索引显示 -- TextBlock Grid.Column1 Margin10 HorizontalAlignmentCenter VerticalAlignmentCenter FontSize16 FontWeightBold Text{Binding RelativeSource{RelativeSource AncestorType{x:Type ListBoxItem}}, Converter{StaticResource IndexConverter}} / !-- 操作按钮 -- StackPanel Grid.Column2 Margin10 OrientationHorizontal !-- 主操作按钮 -- Button Width60 Height30 Margin0,0,5,0 Command{Binding DataContext.ExecuteActionHandleModelCommand, RelativeSource{RelativeSource AncestorType{x:Type ListBox}}} CommandParameter{Binding RelativeSource{RelativeSource AncestorType{x:Type ListBoxItem}}, Converter{StaticResource IndexConverter}} Content执行 / /StackPanel /Grid /Border /DataTemplate /ListBox.ItemTemplate /ListBox传递参数CommandParameter{Binding RelativeSource{RelativeSource AncestorType{x:Type ListBoxItem}}, Converter{StaticResource IndexConverter}}绑定索引的转换器public class ItemToIndexConverter : IValueConverter { // 单值转换用于ListBoxItem/DataGridRow获取索引 public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if (value is ListBoxItem listBoxItem) { var listBox ItemsControl.ItemsControlFromItemContainer(listBoxItem); if (listBox ! null) { int index listBox.ItemContainerGenerator.IndexFromContainer(listBoxItem); return index 0 ? (index