在WPF一个ListView如何删除特定的文本显示? [英] How to delete a specific text showed in a ListView in WPF?

查看:388
本文介绍了在WPF一个ListView如何删除特定的文本显示?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我看了这个话题:
<一href=\"http://stackoverflow.com/questions/10190813/how-to-delete-a-specific-text-message-showed-in-a-listview\">how删除在ListView特定文本/消息显示?

它工作在WinForm的罚款(我有测试一下吧!),但在WPF这是行不通的。

我想找到ListView1的的firstnametxt的文本,并把它比作名字列项目,如果其真正然后删除项目(包含该项目的行)

但我不知道如何在WPF处理这个问题。

我的code部分是这样的:

XAML:

 &LT; ListView控件名称=ListView1的的Horizo​​ntalAlignment =左VerticalAlignment =顶部/&GT;
    &LT; ListView.View&GT;
        &LT;&GridView的GT;
            &LT; GridViewColumn标题=姓DisplayMemberBinding ={绑定路径=姓}/&GT;
            &LT; GridViewColumn标题=姓氏DisplayMemberBinding ={绑定路径=姓氏}/&GT;
        &LT; / GridView的&GT;
    &LT; /ListView.View>
&LT; /&的ListView GT;
&LT;文本框名称=firstnametxtHEIGHT =27的Horizo​​ntalAlignment =左保证金=271,20,0,0VerticalAlignment =评出的WIDTH =181/&GT;
&LT;按钮内容=添加HEIGHT =38的Horizo​​ntalAlignment =左保证金=310,242,0,0NAME =Button1的VerticalAlignment =评出的WIDTH =74点击=的button1_Click/&GT;
&LT;按钮内容=查找HEIGHT =38的Horizo​​ntalAlignment =左NAME =按钮2VerticalAlignment =评出的WIDTH =74点击=button2_Click/&GT;

$ C $落后C(C#):

 公共类家风
{
    公共家风(串名字,姓氏字符串)
    {
        this.FirstName =名字;
        this.LastName =姓氏;
    }
    私人字符串名字;    公共字符串名字
    {
        {返回名字; }
        集合{名字=值; }
    }
    私人字符串姓氏;
    公共字符串姓氏
    {
        {返回姓氏; }
        集合{姓氏=价值; }
    }
}
私人无效的button1_Click(对象发件人,RoutedEventArgs E)
{
    ///////////////////////////
}


解决方案

您需要更改ListBox的的ItemSource羯羊它是一个ITEMLIST,列表或本例使用Familily的列表中的其他集合类型。

 公共部分类主窗口:窗口
{
    清单&LT;&家风GT; familiys =新的List&LT;&家风GT;();
    公共主窗口()
    {
        的InitializeComponent();
        familiys.Add(新家风(FIRSTNAME1,LastName1));
        familiys.Add(新家风(FIRSTNAME2,LastName2));
        familiys.Add(新家风(FIRSTNAME3,LastName3));
        familiys.Add(新家风(FirstName4,LastName4));
        listView1.ItemsSource = familiys;    }
    私人无效的button1_Click(对象发件人,RoutedEventArgs E)
    {
        familiys.Remove(familiys.Find(委托(家风F){返回f.FirstName == firstnametxt.Text;}));
        listView1.ItemsSource =;
        listView1.ItemsSource = familiys;
    }
}

I have read this topic: how to delete a specific text / message showed in a ListView ?

It works fine in winform (I have test it!) but in WPF it does not work.

I want to find a text of the firstnametxt in listview1 and compare it to Firstname Column items and if its true then delete the item (the row that contains the item)

But I do not know how to handle this in WPF.

Part of my code is like this:

XAML:

<ListView Name="listView1 HorizontalAlignment="Left" VerticalAlignment="Top" />
    <ListView.View>
        <GridView>
            <GridViewColumn Header="FirstName" DisplayMemberBinding="{Binding Path=FirstName}"  />
            <GridViewColumn Header="LastName" DisplayMemberBinding="{Binding Path=LastName}" />
        </GridView>
    </ListView.View>
</ListView>
<TextBox Name="firstnametxt" Height="27" HorizontalAlignment="Left" Margin="271,20,0,0"  VerticalAlignment="Top" Width="181" />
<Button Content="Add" Height="38" HorizontalAlignment="Left" Margin="310,242,0,0" Name="button1" VerticalAlignment="Top" Width="74" Click="button1_Click" />
<Button Content="Find" Height="38" HorizontalAlignment="Left" Name="button2" VerticalAlignment="Top" Width="74" Click="button2_Click" />

Code behind (C#):

public class Familiy
{
    public Familiy(string firstname, string lastname)
    {
        this.FirstName = firstname;
        this.LastName = lastname;
    }
    private string firstname;

    public string FirstName
    {
        get { return firstname; }
        set { firstname = value; }
    }
    private string lastname;
    public string LastName
    {
        get { return lastname; }
        set { lastname = value; }
    }
}


private void button1_Click(object sender, RoutedEventArgs e)
{ 
    ///////////////////////////
}

解决方案

You will need to alter the ListBox's ItemSource wether it be a ItemList, List or another collection Type this example uses a List of Familily.

public partial class MainWindow : Window
{
    List<Familiy> familiys = new List<Familiy>();
    public MainWindow()
    {
        InitializeComponent();


        familiys.Add( new Familiy("FirstName1", "LastName1"));
        familiys.Add(new Familiy("FirstName2", "LastName2"));
        familiys.Add(new Familiy("FirstName3", "LastName3"));
        familiys.Add(new Familiy("FirstName4", "LastName4"));
        listView1.ItemsSource = familiys;

    }
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        familiys.Remove(familiys.Find(delegate(Familiy f) { return f.FirstName == firstnametxt.Text; }));
        listView1.ItemsSource = "";
        listView1.ItemsSource = familiys;
    }
}

这篇关于在WPF一个ListView如何删除特定的文本显示?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆