Я DataTemplating список ItemSource
, чтобы показать серию comboboxes. Я хочу дать DisplayMemberPath
комбо к собственности, которая находится в другом источнике, чем собственный ItemsSource
. (Предполагая, что DisplayMemberPath
- это просто строка, представляющая имя свойства, я получаю это от пользователя). Я достиг этого с помощью CollectionViewSource
, но все выпадающие списки отображаются в том же списке.WPF DataTemplate и привязка - возможно ли это в xaml?
То, что я ожидал, чтобы после того, как данные шаблонный, чтобы иметь ComboBoxes дисплей,
ComboboxInstance1.DisplayMemberPath = PropertyMapOfEmployee in FilterControls[0]
ComboboxInstance2.DisplayMemberPath = PropertyMapOfEmployee in FilterControls[1]
ли это можно достичь в XAML?
Спасибо. Mani
UserControl:
<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>
ViewModel:
List<FilterElement> FilterControls;
List<Employee> Employees
class FilterElement
{
string Caption;
String PropertyMapofEmployee
}
Я не думаю, что PropertyMapOfEmployee является собственностью класса Employee, поэтому я не думаю, что это сработает. –
Спасибо .. это на самом деле исправляет как исходную, так и текущую проблему. –
Это работает, потому что PropertyMapOfEmployee является собственностью FilterControls, которая привязана к элементу ListBox (который привязан к дате). С учетом того, что комбо-привязки всегда ссылаются на родителя, если специально не задано использование «Source =» в привязке. Следовательно, это работает. –