我正在WPF中進行自定義控件。我仍然在學習TemplateBinding的用處(在自定義控件中使用了很多)。使用TemplateBindings進行多重綁定
有人認爲我注意到,我似乎無法在MulitBinding中使用TemplateBinding。
當我試試這個:
<ComboBox.ItemsSource>
<MultiBinding Converter="{StaticResource MyMultiConverter}">
<Binding ElementName="PART_AComboBox" Path="SelectedItem"/>
<TemplateBinding Property="MyListOne"/>
<TemplateBinding Property="MyListTwo"/>
</MultiBinding>
</ComboBox.ItemsSource>
我得到這個錯誤:
The value "System.Windows.TemplateBindingExpression" is not of type "System.Windows.Data.BindingBase" and cannot be used in this generic collection.
Parameter name: value
我缺少的東西?有沒有辦法做到這一點?
這是我要去的解決方法,但它是一種黑客攻擊的:
<ListBox x:Name="ListOne"
ItemsSource="{TemplateBinding MyListOne}"
Visibility="Collapsed" />
<ListBox x:Name="ListTwo"
ItemsSource="{TemplateBinding MyListTwo}"
Visibility="Collapsed" />
<ComboBox.ItemsSource>
<MultiBinding Converter="{StaticResource DictionaryFilteredToKeysConverter}">
<Binding ElementName="PART_TextTemplateAreasHost" Path="SelectedItem"/>
<Binding ElementName="ListOne" Path="ItemsSource"/>
<Binding ElementName="ListTwo" Path="ItemsSource"/>
</MultiBinding>
</ComboBox.ItemsSource>
我的列表框綁定到依賴屬性,然後在我的mulitbinding我做的一個元素結合的的ItemsSource列表框。
正如我上面所說,這感覺就像一個黑客和我想知道是否有一個正確的方法來做一個TemplateBinding作爲其中一個組件的MultiBinding。
完美!謝謝你的偉大答案! – Vaccano