以编程方式选择列表框中的项目
Programmatically selecting an Item in a ListBox
我有三个ListBoxes
(CompanyName, Representative & QuoteNumber)然后我使用以下方法将数据从我的 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
列表框中 select 公司名称 ,然后查看 代表 在我的 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));
}
我想要实现的是 auto/programmatically select 名称,比方说 "Josh",来自 CompanyName 列表框。我将如何使用我现在拥有的编码来执行此操作?
基本上我想隐藏我的列表框并让我的程序 select 为我准备一切。
与data binding you can bind the ItemsSource and SelectedItem
那你就可以在后面的代码中赋值SelectedItem了
您很可能需要实施 INotifyPropertyChanged
并且您可以使用绑定填充代表
但是你所拥有的很奇怪——你只是在每个 SelectionChanged
中添加了 Represetatives
出于测试目的,我通过将前两个列表框(公司名称、代表)SelectedIndex
设置为 0,然后使用下面的代码将我的最后一个列表框(报价编号)设置为 select 来解决我的问题我的 QuoteNumber 列表框中最后插入的行。
if (lbxQuoteNumber.Items.Count > -1)
lbxQuoteNumber.SelectedIndex = lbxQuoteNumber.Items.Count - 1;
感谢大家的帮助! :)
我有三个ListBoxes
(CompanyName, Representative & QuoteNumber)然后我使用以下方法将数据从我的 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
列表框中 select 公司名称 ,然后查看 代表 在我的 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));
}
我想要实现的是 auto/programmatically select 名称,比方说 "Josh",来自 CompanyName 列表框。我将如何使用我现在拥有的编码来执行此操作?
基本上我想隐藏我的列表框并让我的程序 select 为我准备一切。
与data binding you can bind the ItemsSource and SelectedItem
那你就可以在后面的代码中赋值SelectedItem了
您很可能需要实施 INotifyPropertyChanged
并且您可以使用绑定填充代表
但是你所拥有的很奇怪——你只是在每个 SelectionChanged
出于测试目的,我通过将前两个列表框(公司名称、代表)SelectedIndex
设置为 0,然后使用下面的代码将我的最后一个列表框(报价编号)设置为 select 来解决我的问题我的 QuoteNumber 列表框中最后插入的行。
if (lbxQuoteNumber.Items.Count > -1)
lbxQuoteNumber.SelectedIndex = lbxQuoteNumber.Items.Count - 1;
感谢大家的帮助! :)