如何在代码中执行此autocompletebox xaml?

时间:2012-11-15 03:02:26

标签: c# silverlight .net-4.0

我有一个带有这些数据绑定的自动完成框:

<sdk:AutoCompleteBox Height="23" HorizontalAlignment="Left" Margin="80,21,0,0" Name="comboBox_clients" VerticalAlignment="Top" Width="171" ItemsSource="{Binding}" IsTextCompletionEnabled="True" IsDropDownOpen="True" ValueMemberPath="client_code">
    <sdk:AutoCompleteBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBlock Text="{Binding client_code}" Name="left" Width="70" />
                <TextBlock Text="{Binding client_name}" Name="right" Width="250" />
            </StackPanel>
        </DataTemplate>
    </sdk:AutoCompleteBox.ItemTemplate>
</sdk:AutoCompleteBox>

它的工作方式与我想要的一样,但它出现在一个加载很多的表单上,并且因为自动完成框有几千个项目,所以在初始加载时需要两到三秒才能获得所有字符串索引/按顺序/一旦我用适当的observablecollection绑定它。

相反,我希望将autocompletebox对象保持为全局,因此少数第二个索引时间仅在第一次加载时发生,然后在窗口的后续打开期间,表单上的自动完成框可以设置为全局索引。我如何在代码中复制这个数据绑定结构?

1 个答案:

答案 0 :(得分:1)

首先创建一个自动完成并设置其DataTemplate(以下链接引导您前进)。

你无法获得DataTemplate代码隐藏方的实例,但是......

https://stackoverflow.com/a/7101581/413032

https://stackoverflow.com/a/72158/413032

但是,如果我不是在代码隐藏中创建数据窗口而创建一个小资源并从后面的代码中获取它会使事情变得更容易。