我遇到了一个问题,我可以将项目添加到我的列表视图而不会出现任何问题,但是当我想要删除某个项目时,由于某些原因它无法执行此操作。 我希望能够删除一个项目而不必选择项目,我想通过字符串来做它... 如果LvItems.Items =="这个字符串"然后它知道要删除哪一个。 我不知道列表视图可以为我提供哪些选项,所以我会在Stack上询问专业人士。
问题:
如何在不必选择项目的情况下删除项目 我希望能够找到用户,并从列表中删除该用户并刷新UI,以便用户不再在列表视图中。
这是我在此代码背后的思考过程。
创建列表视图
添加listviewitem列
创建列表
在按钮点击事件处理程序&上添加一些内容到列表中填充那个 listview与列表中的项目
刷新listView UI
这是.CS
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; }
}
这是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>
答案 0 :(得分:1)
您可以使用LINQ在Player
中选择ObservableCollection<Player>
对象,然后将其从集合中删除:
private void btnRemove_Click(object sender, RoutedEventArgs e)
{
var playerToRemove = items.FirstOrDefault(x => x.Username == "John Doe");
if (playerToRemove != null)
items.Remove(playerToRemove);
}