Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从listview中删除listitems,而不必选择该项,然后将其删除_C#_Xml_Wpf_Xaml_Listview - Fatal编程技术网

C# 如何从listview中删除listitems,而不必选择该项,然后将其删除

C# 如何从listview中删除listitems,而不必选择该项,然后将其删除,c#,xml,wpf,xaml,listview,C#,Xml,Wpf,Xaml,Listview,我面临一个问题,我可以添加项目到我的listview没有任何问题,它的工作非常完美,但当我想删除一个项目,它不能这样做,因为某些原因。 我希望能够在不必选择项目的情况下删除项目,我正在考虑通过字符串这样做。。 如果LvItems.Items==“This string”,则它知道要删除哪个字符串。 我不知道ListView有哪些选项可供选择,所以我会询问Stack上的专业人士 问题是: 如何在不必选择项目的情况下删除项目 我希望能够通过字符串找到该用户,并从列表中删除该用户,然后刷新UI,以便该

我面临一个问题,我可以添加项目到我的listview没有任何问题,它的工作非常完美,但当我想删除一个项目,它不能这样做,因为某些原因。 我希望能够在不必选择项目的情况下删除项目,我正在考虑通过字符串这样做。。 如果LvItems.Items==“This string”,则它知道要删除哪个字符串。 我不知道ListView有哪些选项可供选择,所以我会询问Stack上的专业人士

问题是:

如何在不必选择项目的情况下删除项目 我希望能够通过字符串找到该用户,并从列表中删除该用户,然后刷新UI,以便该用户不再位于listview中

这就是我在这段代码背后的思考过程

创建一个列表视图

添加listviewitem列

创建一个列表

在单击按钮事件处理程序时向列表中添加一些内容并填充该内容 包含列表中的项目的listview

刷新listView用户界面

这是.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; }
    }
公共部分类主窗口:窗口
{
公共主窗口()
{
初始化组件();
}
//列表项=新列表();
公共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);
}

有帮助吗?我真诚地希望有一天我会像你一样擅长编码!