如何从ListBox绑定AutoCompleteBox的DataTemplate?

时间:2019-05-15 05:39:49

标签: c# wpf binding autocompletebox

我在用AutoCompleteBox绑定DotNetProjects.Wpf.Toolkit的项目时遇到问题。当我将AutoCompleteBox绑定到List<string>时,一切正常。但是然后,我不需要使用ItemTemplate并将其绑定到任何东西。

但是当我尝试将其绑定到List<object>时,我遇到了一个问题-我没有得到与我写的文本相匹配的建议项目的列表。我已经遵循了this link的提示,也尝试了this one too。问题是我的绑定来自ListBox DataTemplate内部。

我的视图模型的属性如下:

public IEnumerable<LoadedHorse> LoadedHorses
        {
            get
            {
                return _allHorses;
            }
        }

_allHorses_allHorses = new List<LoadedHorse>();类型的地方

还有我的xaml:

<toolkit:AutoCompleteBox
                                IsTextCompletionEnabled="True"
                                FilterMode="Contains"
                                ItemsSource="{Binding DataContext.LoadedHorses, RelativeSource={RelativeSource AncestorType=ListBox}}"
                                Text="{Binding Path=HorseName, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
                                Height="20"
                                Width="130">
                                <toolkit:AutoCompleteBox.ItemTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock
                                                Text="{Binding Name}"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </toolkit:AutoCompleteBox.ItemTemplate>
                            </toolkit:AutoCompleteBox>

我也尝试了Text="{Binding Name, RelativeSource={RelativeSource AncestorType=ListBox},但没有任何效果。

注意::请注意,集合_allHorses具有约40000个对象。有关系吗?

0 个答案:

没有答案