Tworzę niestandardowe sterowanie w WPF. Nadal poznaję tajniki tego, czym jest TemplateBinding (często używane w niestandardowych kontrolach).Użyj wiązania wielokrotnego z TemplateBindings
Uważam, że zauważam, że nie mogę użyć szablonu TemplateBinding w MulitBinding.
Kiedy próbuję to:
<ComboBox.ItemsSource>
<MultiBinding Converter="{StaticResource MyMultiConverter}">
<Binding ElementName="PART_AComboBox" Path="SelectedItem"/>
<TemplateBinding Property="MyListOne"/>
<TemplateBinding Property="MyListTwo"/>
</MultiBinding>
</ComboBox.ItemsSource>
otrzymuję ten błąd:
The value "System.Windows.TemplateBindingExpression" is not of type "System.Windows.Data.BindingBase" and cannot be used in this generic collection.
Parameter name: value
jestem brakuje czegoś? Czy istnieje sposób, aby to zadziałało?
To obejście mam zamiar, ale jest to rodzaj hack:
<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>
wiążę listboxes do właściwości zależności, a następnie w moim mulitbinding mam zrobić elementu wiążą się z ItemsSource z pola listy.
Jak wspomniałem powyżej, to jest jak hack i Chciałbym wiedzieć, czy istnieje poprawny sposób na MultiBinding z TemplateBinding jako jeden z komponentów.
Idealnie! Dzięki za wspaniałą odpowiedź! – Vaccano