在WPF一个ListView如何删除特定的文本显示? [英] How to delete a specific text showed in a ListView in WPF?
问题描述
我看了这个话题:
<一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的的HorizontalAlignment =左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的HorizontalAlignment =左保证金=271,20,0,0VerticalAlignment =评出的WIDTH =181/&GT;
&LT;按钮内容=添加HEIGHT =38的HorizontalAlignment =左保证金=310,242,0,0NAME =Button1的VerticalAlignment =评出的WIDTH =74点击=的button1_Click/&GT;
&LT;按钮内容=查找HEIGHT =38的HorizontalAlignment =左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屋!