我是DataTemplating的列表框的ItemSource
以顯示一系列組合框。我想將組合的DisplayMemberPath
賦予一個屬性,該屬性與它自己的ItemsSource
不同。 (假設DisplayMemberPath
只是一個表示屬性名稱的字符串,我從用戶那裏得到這個)。我用CollectionViewSource
實現了這一點,但所有組合框都顯示相同的列表。WPF DataTemplate和綁定 - 這可能在XAML?
什麼我期待着有後的數據模板是有組合框顯示,
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
}
我不認爲PropertyMapOfEmployee是Employee類的一個屬性,所以我不認爲這會起作用。 – 2010-09-23 18:49:47
謝謝..這實際上修復了原來的和當前的問題。 – 2010-09-23 18:53:52
它工作原理是因爲PropertyMapOfEmployee是FilterControls的一個特性,它綁定到ListBox(數據模型)。因此,組合綁定總是指父級,除非在綁定中使用'Source ='專門設置。因此它起作用。 – 2010-09-23 18:56:04