C# 如何从listview中删除listitems,而不必选择该项,然后将其删除
我面临一个问题,我可以添加项目到我的listview没有任何问题,它的工作非常完美,但当我想删除一个项目,它不能这样做,因为某些原因。 我希望能够在不必选择项目的情况下删除项目,我正在考虑通过字符串这样做。。 如果LvItems.Items==“This string”,则它知道要删除哪个字符串。 我不知道ListView有哪些选项可供选择,所以我会询问Stack上的专业人士 问题是: 如何在不必选择项目的情况下删除项目 我希望能够通过字符串找到该用户,并从列表中删除该用户,然后刷新UI,以便该用户不再位于listview中 这就是我在这段代码背后的思考过程 创建一个列表视图 添加listviewitem列 创建一个列表 在单击按钮事件处理程序时向列表中添加一些内容并填充该内容 包含列表中的项目的listview 刷新listView用户界面 这是.CSC# 如何从listview中删除listitems,而不必选择该项,然后将其删除,c#,xml,wpf,xaml,listview,C#,Xml,Wpf,Xaml,Listview,我面临一个问题,我可以添加项目到我的listview没有任何问题,它的工作非常完美,但当我想删除一个项目,它不能这样做,因为某些原因。 我希望能够在不必选择项目的情况下删除项目,我正在考虑通过字符串这样做。。 如果LvItems.Items==“This string”,则它知道要删除哪个字符串。 我不知道ListView有哪些选项可供选择,所以我会询问Stack上的专业人士 问题是: 如何在不必选择项目的情况下删除项目 我希望能够通过字符串找到该用户,并从列表中删除该用户,然后刷新UI,以便该
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
//List<Player> items = new List<Player>();
public ObservableCollection<Player> items = new ObservableCollection<Player>();
private void btnAppend_Click(object sender, RoutedEventArgs e)
{
items.Add(new Player() { Username = "John Doe" });
lvUsers.ItemsSource = items;
lvUsers.Items.Refresh();
}
private void btnRemove_Click(object sender, RoutedEventArgs e)
{
items.Remove(new Player() { Username = "John Doe" });
lvUsers.Items.Refresh();
}
}
public class Player
{
public string Username { get; set; }
}
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
//列表项=新列表();
公共ObservableCollection项目=新ObservableCollection();
私有无效btnAppend_单击(对象发送方,路由目标)
{
添加(新玩家(){Username=“John Doe”});
lvUsers.ItemsSource=项目;
lvUsers.Items.Refresh();
}
私有void btnRemove_单击(对象发送者,路由目标)
{
移除(新玩家(){Username=“John Doe”});
lvUsers.Items.Refresh();
}
}
公开课选手
{
公共字符串用户名{get;set;}
}
这是XAML
<Window x:Class="Listviewssssssssssssss.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Listviewssssssssssssss"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid>
<ListView Name="lvUsers" ItemsSource="{Binding newPatientList}" HorizontalAlignment="Left" Height="107" Margin="10,10,0,0" VerticalAlignment="Top" Width="497">
<ListView.View>
<GridView>
<GridViewColumn Header="Player" Width="120" DisplayMemberBinding="{Binding Username}" />
</GridView>
</ListView.View>
</ListView>
<TextBox Name="tbConent" HorizontalAlignment="Left" Height="78" Margin="10,122,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="497"/>
<Button Name="btnAppend" Click="btnAppend_Click" Content="Append" HorizontalAlignment="Left" Margin="44,228,0,0" VerticalAlignment="Top" Width="75"/>
<Button Name="btnRemove" Click="btnRemove_Click" Content="Remove" HorizontalAlignment="Left" Margin="371,228,0,0" VerticalAlignment="Top" Width="75"/>
</Grid>
</Window>
您可以使用LINQ在
可观察集合
中选择播放器
对象,然后将其从集合中删除:
private void btnRemove_Click(object sender, RoutedEventArgs e)
{
var playerToRemove = items.FirstOrDefault(x => x.Username == "John Doe");
if (playerToRemove != null)
items.Remove(playerToRemove);
}
有帮助吗?我真诚地希望有一天我会像你一样擅长编码!