我有一个包含数据库中所有来宾的Listview
public FormGuestManagement()
{
InitializeComponent();
listViewGuests.View = View.Details;
listViewGuests.GridLines = true;
listViewGuests.Scrollable = true;
listViewGuests.FullRowSelect = true;
listViewGuests.HideSelection = false;
var guests = Repository.GetAllGuests();
foreach (var guest in guests)
{
ListViewItem lvData = new ListViewItem(guest.AccountID.ToString());
lvData.SubItems.Add(guest.Username);
lvData.SubItems.Add(guest.Email);
lvData.SubItems.Add(guest.FirstName);
lvData.SubItems.Add(guest.LastName);
lvData.SubItems.Add(guest.TelephoneNumber);
lvData.SubItems.Add(guest.AddressLine1);
lvData.SubItems.Add(guest.AddressLine2);
lvData.SubItems.Add(guest.City);
lvData.SubItems.Add(guest.State);
lvData.SubItems.Add(guest.Postcode);
lvData.SubItems.Add(guest.Country);
listViewGuests.Items.Add(lvData);
}
}
如何使用字符串搜索单个列(在本例中为guest.Firstname),并且只显示列表视图中与字符串匹配的值(隐藏其他列)?
感谢您的时间!
答案 0 :(得分:1)
ListView
控件不提供您想要的功能。为了模拟您描述的内容,每次过滤条件发生变化时,您都必须重建所需的列表。
或者您可以像一位评论者所建议的那样使用更强大的内容,例如DataGridView
。此控件提供真正的行/列行为,并采用可绑定的DataSource
。
答案 1 :(得分:0)
LINQ可以做到这一点,应该很容易:
combofavorite.Items.Add("Report Type: " + cmbreporttype.Text + " Date From: " + dateTimePicker1.Text + " To: " + dateTimePicker2.Text);
combofavorite.SelectedIndex = 0;
MessageBox.Show("Add Report Type: " + cmbreporttype.Text + " Date From: " + dateTimePicker1.Text + " To: " + dateTimePicker2.Text + " TO Favorite", "Added to Favorite", MessageBoxButtons.OK, MessageBoxIcon.Information);