WPF数据模板和绑定-在xaml中是否可能?
我正在对列表框的WPF数据模板和绑定-在xaml中是否可能?,wpf,xaml,wpf-controls,binding,Wpf,Xaml,Wpf Controls,Binding,我正在对列表框的ItemSource进行数据模板化,以显示一系列组合框。我想将组合的DisplayMemberPath指定给一个属性,该属性的源与它自己的ItemsSource不同。(假设DisplayMemberPath只是一个表示属性名称的字符串,我是从用户那里得到的)。我用CollectionViewSource实现了这一点,但是所有的组合框都显示相同的列表 在数据模板化之后,我希望能够显示组合框 ComboboxInstance1.DisplayMemberPath = Propert
ItemSource
进行数据模板化,以显示一系列组合框。我想将组合的DisplayMemberPath
指定给一个属性,该属性的源与它自己的ItemsSource
不同。(假设DisplayMemberPath
只是一个表示属性名称的字符串,我是从用户那里得到的)。我用CollectionViewSource
实现了这一点,但是所有的组合框都显示相同的列表
在数据模板化之后,我希望能够显示组合框
ComboboxInstance1.DisplayMemberPath = PropertyMapOfEmployee in FilterControls[0]
ComboboxInstance2.DisplayMemberPath = PropertyMapOfEmployee in FilterControls[1]
这可以在XAML中实现吗
谢谢。马尼
用户控制:
<Resources>
<CollectionViewSource x:Key="bindingSource" Source="{Binding BindingItems}"/>
<CollectionViewSource x:Key="FilterSource" Source="{Binding FilterControls}"/>
<DataTemplate DataType="{x:Type CustomTypes:FilterElement}">
<ComboBox ItemsSource="{Binding Source={StaticResource bindingEmp}"
DisplayMemberPath="{Binding Source={StaticResource FilterSource},
Path=PropertyMapofEmployee}" />
</DataTemplate>
<Resources>
---
<DockPanel>
<ListBox x:Name="lstBox" ItemsSource="{Binding FilterControls}" />
</DockPanel>
---
视图模型:
List<FilterElement> FilterControls;
List<Employee> Employees
class FilterElement
{
string Caption;
String PropertyMapofEmployee
}
列出过滤器控件;
列出雇员名单
类过滤器
{
字符串标题;
字符串属性mapofemployee
}
我不确定您能否在XAML中实现这一点。(DisplayMemberPath指向DataContext以外的对象上的属性)。您可能想查看一下,看看这是否能满足您的需求
您是否考虑过在Employee对象中提供对FilterElement的引用,然后连接到您创建的Employee.PropertyMapOfEmployee属性的绑定?我不确定您是否可以在XAML中这样做。(DisplayMemberPath指向DataContext以外的对象上的属性)。您可能想查看一下,看看这是否能满足您的需求
您是否考虑过在Employee对象中提供对FilterElement的引用,然后连接到您创建的Employee.PropertyMapOfEmployee属性的绑定?我不认为PropertyMapOfEmployee是Employee类上的属性,所以我认为这不会起作用。谢谢。。这实际上修复了原始问题和当前问题。这是因为PropertyMapOfEmployee是绑定到列表框(datatemplated)的FilterControl的一个属性。因此,组合绑定始终引用父对象,除非在绑定中使用“Source=”专门设置。因此它是有效的。@Dave,Employee对象不是ComboBox的DataContext,而是ComboBoxItem的DataContext…我认为PropertyMapOfEmployee不是Employee类的属性,所以我认为这不起作用。谢谢。。这实际上修复了原始问题和当前问题。这是因为PropertyMapOfEmployee是绑定到列表框(datatemplated)的FilterControl的一个属性。因此,组合绑定始终引用父对象,除非在绑定中使用“Source=”专门设置。因此它是有效的。@Dave,Employee对象不是ComboBox的DataContext,而是ComboBoxItem的DataContext。。。
<ComboBox ItemsSource="{Binding Source={StaticResource bindingEmp}"
DisplayMemberPath="{Binding PropertyMapofEmployee}" />