【发布时间】:2012-12-05 14:35:01
【问题描述】:
<StackPanel DataContext="{StaticResource Employees1}">
<ListBox ItemsSource="{Binding}" DisplayMemberPath="Name"
IsSynchronizedWithCurrentItem="True"/>
<Label Content="{Binding Path=Count}"/>
<Label Content="{Binding Path=Name}"/>
</StackPanel>
如何解决标签的绑定问题?如何决定第二个标签的内容绑定到Employees1.Count(而不是Employee.Count),而第一个标签绑定到 Employee.Name 并与列表框选择同步?另外,如果我想将第一个标签绑定到 Employee.Count 怎么办?
(Employee 具有属性 Name(可能还有 Count),Employees1 是一个 Employee 类型的 ObservableCollection)。
编辑:所以,这里的问题是 WHY 第一个标签显示 ObservableCollection 中的员工人数,而第二个标签显示 特定 员工的姓名集合,即当前在 ListBox 中选择的集合。显然,第一个标签绑定到整个集合,第二个标签绑定到集合中的特定员工。但是为什么,以及如何控制这种行为。
【问题讨论】:
-
两个标签都包含在StackPanel中,会从StackPanel继承DataContext。 ListBox 和 Label 都使用 Name 是没有意义的,因为 ListBox 是一个重复器控件,它绑定到一个集合,而 Label 不绑定到一个集合。
-
老实说,这不是具有特定目的的生产代码。我有一个关于为什么这样做的问题。我编辑澄清。
标签: wpf data-binding