【发布时间】:2017-01-04 00:20:55
【问题描述】:
我有一个动态创建项目列表的列表视图。在列表视图中,每个成员都有 2 个标签:一个“等级”(一个数字,通常为 1-10)和一个“名称”。每个列表视图项也有 3 个按钮。我想让它让用户能够编辑“等级”标签。如果他们也能够编辑名称标签,那没关系,但我更喜欢只有一个。
我在网上看到的答案都涉及 ListView 的“LabelEdit”属性,但是这对我来说似乎不存在,因为当我包含该属性时会出现编译错误。
这是我的 ListView 的 Xaml:
<ListView Margin="134,110,100,50"
Name="carrierList"
HorizontalAlignment="Center"
Width="232"
BorderBrush="LightGray"
BorderThickness="1,1,1,1"
Visibility="{Binding Path=ShowCarrierList, Converter={StaticResource BoolToVis}}"
ItemsSource="{Binding CarrierList}"
Grid.RowSpan="2"
ScrollViewer.CanContentScroll="True">
<ListView.ItemTemplate>
<DataTemplate>
<DockPanel Margin="0,0,0,0" HorizontalAlignment ="Stretch">
<Grid HorizontalAlignment="Stretch">
<Grid.Resources>
<Style TargetType="{x:Type Border}">
<!-- All rows -->
<Setter Property="BorderBrush" Value="Black" />
<Setter Property="BorderThickness" Value="2" />
<Setter Property="CornerRadius" Value="5" />
</Style>
</Grid.Resources>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="165" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="20" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Rank}" />
<TextBlock Text="{Binding CarrierName}" Margin="20,0,0,0"/>
<Button Width="20" Grid.Column="1" HorizontalAlignment="Right" ToolTip="Edit Carrier Details" Command="{Binding ElementName=carrierList, Path=DataContext.EditCarrierClick}" CommandParameter="{Binding}">
<StackPanel>
<Image Source="{StaticResource EditImg}"/>
</StackPanel>
</Button>
<Button Width="20" Grid.Column="2" HorizontalAlignment="Right" ToolTip="View All Nodes With This Carrier" Command="{Binding ElementName=carrierList, Path=DataContext.AffectedNodeListClick}" CommandParameter="{Binding}">
<StackPanel>
<Image Source="{StaticResource NetworkImg}"/>
</StackPanel>
</Button>
<Button Width="20" Grid.Column="3" HorizontalAlignment="Right" ToolTip="Remove Carrier From Node" Command="{Binding ElementName=carrierList, Path=DataContext.OnRemoveClick}" CommandParameter="{Binding}">
<StackPanel>
<Image Source="{StaticResource ErrorImg}"/>
</StackPanel>
</Button>
</Grid>
</DockPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
【问题讨论】:
-
要编辑,您需要在 observableCollection 中找到要编辑的值,提取、更改然后插入。
-
我希望用户能够简单地单击该值并开始输入。信息已经在一个可观察的集合(Carrier 对象的可观察集合)中