1.界面代码
<ListView Margin="10" Name="lvUsers" MouseDoubleClick="lvUsers_MouseDoubleClick" ItemsSource="{Binding DesignViewList}">
<ListView.View>
<GridView>
<GridViewColumn Header="描述" Width="200" DisplayMemberBinding="{Binding Desc}" />
<GridViewColumn Header="轴" Width="80" DisplayMemberBinding="{Binding Axis}" />
<GridViewColumn Header="动作" Width="80" DisplayMemberBinding="{Binding Action}" />
<GridViewColumn Header="位置" Width="80" DisplayMemberBinding="{Binding Position}" />
</GridView>
</ListView.View>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Height" Value="30" />
</Style>
</ListView.ItemContainerStyle>
<ListView.ContextMenu>
<ContextMenu>
<MenuItem Name="MenuItem1" Header="删除" Click="MenuItem1_Click"/>
<MenuItem Name="MenuItem2" Header="清空" Click="MenuItem2_Click"/>
</ContextMenu>
</ListView.ContextMenu>
</ListView>
2.后台代码
//声明变量,将界面ListView与List绑定
private static ObservableCollection<User> List = new ObservableCollection<User>();
//ListView双击事件
private void lvUsers_MouseDoubleClick(object sender, MouseButtonEventArgs e)
{
if (lvUsers.SelectedIndex == -1)
{
User user = new User();
user.Desc = "复位";
user.Axis = "焦距";
user.Action = "复位";
user.Position = 0;
ActionsWnd actionsWnd = new ActionsWnd(user);
if (true == actionsWnd.ShowDialog())
{
//List新增,则在界面也会新增
List.Add(actionsWnd.WndUser);
}
}
else
{
Console.WriteLine("11");
var user = lvUsers.SelectedItem as User;
ActionsWnd actionsWnd = new ActionsWnd(user);
if (true == actionsWnd.ShowDialog())
{
int nSelect = lvUsers.SelectedIndex;
List[nSelect] = actionsWnd.WndUser;
}
}
}
//ListView添加的右键菜单事件
private void MenuItem1_Click(object sender, RoutedEventArgs e)
{
int nIndex = lvUsers.SelectedIndex;
if(nIndex >-1)
{
List.RemoveAt(nIndex);
}
}
private void MenuItem2_Click(object sender, RoutedEventArgs e)
{
List.Clear();
}