Tôi đang thực hiện một điều khiển tùy chỉnh trong WPF. Tôi vẫn đang tìm hiểu về những gì mà TemplateBinding đang sử dụng (được sử dụng rất nhiều trong các điều khiển tùy chỉnh).Sử dụng MulitBinding với TemplateBindings
Một người nghĩ rằng tôi nhận thấy rằng tôi dường như không thể sử dụng một TemplateBinding bên trong một MulitBinding.
Khi tôi cố gắng này:
<ComboBox.ItemsSource>
<MultiBinding Converter="{StaticResource MyMultiConverter}">
<Binding ElementName="PART_AComboBox" Path="SelectedItem"/>
<TemplateBinding Property="MyListOne"/>
<TemplateBinding Property="MyListTwo"/>
</MultiBinding>
</ComboBox.ItemsSource>
tôi nhận được lỗi này:
The value "System.Windows.TemplateBindingExpression" is not of type "System.Windows.Data.BindingBase" and cannot be used in this generic collection.
Parameter name: value
Tôi có thiếu cái gì? Có cách nào để làm cho công việc này?
Đây là workaround Tôi đã đi, nhưng nó là loại một 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>
tôi ràng buộc listboxes đến tài sản phụ thuộc và sau đó trong mulitbinding của tôi, tôi làm một ràng buộc yếu tố để ItemsSource của các hộp danh sách.
Như tôi đã nói ở trên, điều này giống như một hack và Tôi muốn biết nếu có một cách chính xác để làm một MultiBinding với một TemplateBinding là một trong những thành phần.
Hoàn hảo! Cảm ơn câu trả lời tuyệt vời! – Vaccano