【发布时间】:2015-07-09 09:41:27
【问题描述】:
我有三个 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 ListBox 中选择公司名称,然后在我的@987654324 中查看属于该公司的代表 @列表框。
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));
}
我想要实现的是从 CompanyName 列表框中自动/以编程方式选择名称,比如说“Josh”。我将如何使用我现在拥有的编码来执行此操作?
基本上我想隐藏我的列表框,让我的程序为我选择所有内容。
【问题讨论】:
-
为什么不为此使用数据绑定?这样要容易得多,您可以在 WPF 中以几乎零代码实现这一目标。
-
感谢您的评论!您的意思是在我的 XAML 中绑定它吗?
-
是的,寻找数据绑定教程。然后,假设您的数据上下文中有一个
Company类和一个IList<Person> Representatives属性和一个IList<Company> Companies属性。您可以将公司列表框绑定为Items="{Binding Companies}" IsSynchronizedWithCurrentItem="True",将代表列表框绑定为Items="{Binding Companies/Representatives}"。工作完成:-) -
@Lucas Trzesniewski -感谢所有努力的人;)。我只是想知道,如何从数据绑定中选择特定公司名称?我对 XAML 不是很了解,但我现在会去研究它。
-
这也可以通过绑定来完成...
SelectedItem="{Binding CurrentCompany, Mode=TwoWay}"