C# 双击时如何使listview列可编辑?
因此,我有一个带有几个标题的listview,当设置数据时,我希望可以选择双击其中一列来编辑值。 这是否可能?如果可能,正确的方法是什么C# 双击时如何使listview列可编辑?,c#,.net,wpf,listview,C#,.net,Wpf,Listview,因此,我有一个带有几个标题的listview,当设置数据时,我希望可以选择双击其中一列来编辑值。 这是否可能?如果可能,正确的方法是什么 <ListView Name="LvProducts" Margin="224,204,10,35"> <ListView.View> <GridView> <GridViewColumn Header="ID" Width
<ListView Name="LvProducts" Margin="224,204,10,35">
<ListView.View>
<GridView>
<GridViewColumn Header="ID" Width="120" DisplayMemberBinding="{Binding ID}" />
<GridViewColumn Header="SKU" Width="50" DisplayMemberBinding="{Binding SKU}" />
<GridViewColumn Header="Name" Width="150" DisplayMemberBinding="{Binding Name}" />
<GridViewColumn Header="Description" Width="150" DisplayMemberBinding="{Binding Description}" />
<GridViewColumn Header="In Stock" Width="150" DisplayMemberBinding="{Binding InStock}" />
<GridViewColumn Header="Price" Width="150" DisplayMemberBinding="{Binding Price}" />
<GridViewColumn Header="Images" Width="150" DisplayMemberBinding="{Binding Images}" />
</GridView>
</ListView.View>
</ListView>
萨吉塔兰在本文中回答 为GridViewColumn.CellTemplate创建名为EditBox的自定义控件 在正常模式下,文本块用于显示内容;在编辑模式下,将弹出一个文本框进行编辑 从控件中继承的类
public class EditBox : Control
{
static EditBox()
{
public static readonly DependencyProperty ValueProperty =
DependencyProperty.Register(
"Value",
typeof(object),
typeof(EditBox),
new FrameworkPropertyMetadata());
}
为iEdit添加依赖项属性
public static DependencyProperty IsEditingProperty =
DependencyProperty.Register(
"IsEditing",
typeof(bool),
typeof(EditBox),
new FrameworkPropertyMetadata(false)
);
自定义编辑框的样式:
<Style x:Key="{x:Type l:EditBox}" TargetType="{x:Type l:EditBox}" >
<Setter Property="HorizontalAlignment" Value="Left" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type l:EditBox}">
<TextBlock x:Name="PART_TextBlockPart"
Text="{Binding Path=Value, RelativeSource = {RelativeSource TemplatedParent}}">
</TextBlock>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
在Xaml中,可以在每列中放置编辑框:
//Example with first column
<GridViewColumn Header="ID" Width="120" DisplayMemberBinding="{Binding ID}">
<GridViewColumn.CellTemplate>
<DataTemplate>
<i:EditBox>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
//第一列的示例
Sajeetharan在本文中回答了您的问题