CompositeCollection ломает ComboBox AutoComplete-Feature?
От себя
Всем привет!
Я использую WPF ComboBox с IsTextSearchEnabled="True"
(Автозаполнение) и хотите связать его ItemsSource-Property с CompositeCollection. К сожалению, Combobox, похоже, не распознает элементы, предоставленные CollectionContainer в CompositeCollection. Они показываются, но не выбираются автозаполнением.
Пожалуйста, попробуйте пример, введите "def". Если "def" не выбрано, вы воспроизвели проблему, с которой я столкнулся. Есть ли какое-либо решение, что-то, что я наблюдал, или практический способ обойти, имея некоторую возможность объединения?
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Window.Resources>
<XmlDataProvider x:Key="XData1" XPath="/Info">
<x:XData>
<Info xmlns="">
<Item>def</Item>
<Item>efg</Item>
</Info>
</x:XData>
</XmlDataProvider>
<CollectionViewSource x:Key='Data1' Source="{Binding Source={StaticResource XData1}, XPath=Item}" />
</Window.Resources>
<Grid>
<ComboBox IsEditable="True" IsTextSearchEnabled="True" Margin="0,0,0,283">
<ComboBox.ItemsSource>
<CompositeCollection>
<ComboBoxItem>abc</ComboBoxItem>
<ComboBoxItem>bcd</ComboBoxItem>
<ComboBoxItem>cde</ComboBoxItem>
<CollectionContainer Collection="{Binding Source={StaticResource Data1}}" />
</CompositeCollection>
</ComboBox.ItemsSource>
</ComboBox>
</Grid>
Спасибо! - дартракс
1 ответ
Я обнаружил, что это решается, как только вы переопределяете функцию ToString() вашего объекта Items, чтобы она возвращала то, что показывает элемент DataTemplate.
Полный рабочий пример здесь: --------> X
- dartrax