以编程方式选择列表框中的项目
本文关键字:项目 列表 编程 方式 选择 | 更新日期: 2023-09-27 18:02:02
我有三个ListBoxes
(CompanyName, Representative & quotennumber ),然后使用下面的方法将数据从WCF客户端加载到CompanyName列表框中:
private async Task LoadCompanies()
{
using (TruckServiceClient client = new TruckServiceClient())
{
var companies = await client.GetCompaniesAsync();
foreach (var company in companies)
lbxCompanyName.Items.Add(new ListBoxViewItem<Company>(company));
}
}
现在在下面的代码中,我允许自己在lbxCompanyName
列表框中选择公司名称,然后在lbxRepresentative
列表框中查看属于该公司的代表。
private void lbxCompanyName_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var company = (ListBoxViewItem<Company>)lbxCompanyName.SelectedItem; //Changing this line to auto select an Item for me
foreach (var rep in company.Item.Represetatives)
lbxRepresentatives.Items.Add(new ListBoxViewItem<Represetative>(rep));
}
我想要实现的是自动/编程地选择名称,让我们说"Josh",从CompanyName ListBox。我该如何用现有的代码来做呢?
基本上我想隐藏我的列表框,让我的程序为我选择一切
使用数据绑定,您可以绑定ItemsSource和SelectedItem
然后你可以在
后面的代码中分配SelectedItem您很可能需要实现INotifyPropertyChanged
你可以用binding
填充代表但是你得到的很奇怪——你只是为每个SelectionChanged
为了测试的目的,我通过设置我的前两个ListBox (CompanyName, Representative) SelectedIndex
为0,然后使用下面的代码为我的最后一个ListBox (quotennumber)选择quotennumber列表框中最后插入的行来解决我的问题。
if (lbxQuoteNumber.Items.Count > -1)
lbxQuoteNumber.SelectedIndex = lbxQuoteNumber.Items.Count - 1;
谢谢大家的帮助!:)