我是DataTemplating列表框的itemsource来显示标签和组合框。在,datatemplate我将一个新的itemssource分配给组合框但是无法让它工作。
或者理想情况下,如何将datatemplate中的组合框绑定到不同的源。
感谢。摩尼
<DockPanel>
<ListBox x:Name="lstBox" ItemsSource="{Binding FilterControls}" />
</DockPanel>
<!--DataTemplate For SearchElement Type-->
<DataTemplate DataType="{x:Type CustomTypes:FilterElement}">
<Label> Text </Label>
*<ComboBox ItemsSource="{Binding Employees}"DisplayMemberPath="Sex" />*
</DataTemplate>
List<FilterElement> FilterControls;
List<Employee> Employees
Class FilterElement
{
string Caption;
}
class Employee
{
string Sex;
}
答案 0 :(得分:3)
在你的组合框中,你绑定到当前数据上下文中的Employees
,它将是一个FilterElement对象 - 没有要绑定的Employees属性。
在绑定中,您可能希望将Source=
设置为其他内容,这会覆盖您的datacontext
有很多方法可以设置这个简单的方法(无论如何很容易放在这里)将一个collectionViewSource添加到你的窗口/控件的资源(我把Whatever.Resources - 它可以进去几乎所有含元素)
<Whatever.Resources>
<CollectionViewSource x:Key="employeeSource" Source="{Binding Employees}">
</Whatever.Resources>
然后在你的datatemplate
<ComboBox ItemsSource={Binding Source={StaticResource employeeSource}}" ... />
请注意,使用CollectionViewSource也可以在xaml中进行排序/分组。