在silverlight中使用自动完成框?

时间:2011-05-03 15:31:05

标签: silverlight autocomplete telerik ria

我目前正在telerik的radgrid控件中显示数据,我想在名为“Name”的列上添加一个自动文本框。我怎么能这样做?

我的radgrid只显示数据,我希望每当用户进入文本框时,会弹出一个名称列表,就像在stackoverflow网站中一样。

请帮助..我一直在使用silverlight,wcf ria服务,telerik控件。

1 个答案:

答案 0 :(得分:2)

您可以使用Silverlight 4 Toolkit中的“自动完成”文本框。该工具包是一组高级控件,不属于核心Visual Studio库。下载&安装,您可以here。安装完成后,将项目引用添加到System.Windows.Controls,将其添加到UserControl声明中:

xmlns:input="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Input"

这为您提供了Silverlight Toolkit的参考点,特别是输入控件。完成后,以下是使用自动填充文本框的示例:

<input:AutoCompleteBox IsTextCompletionEnabled="False" HorizontalAlignment="Left" ItemsSource="{StaticResource SampleEmployees}" SelectionChanged="OnSelectionChanged"/>

这直接来自Silverlight Toolkit的文档。 Link here。单击左侧菜单中的“AutoCompleteBox”(标题:输入下方)。加载后,您可以通过单击窗口底部的任何一个项目来查看XAML / C#,例如'AutoCompleteBoxSample.xaml'或'AutoCompleteBoxSample.xaml.cs'这应该为您提供开始/代码'正在寻找。

在您的情况下,您还需要为radgridview创建一个单元格模板。以下是可能的样子的快速示例:

<radControls:RadGridView x:Name="registerGridView" 
                             AutoGenerateColumns="False">  
        <radControls:RadGridView.Columns> 
            <radControls:GridViewToggleRowDetailsColumn /> 
            <radControls:GridViewDataColumn Header="Client" /> 
            <radControls:GridViewDataColumn Header="Site" />  
            <radControls:GridViewDataColumn Header="Name">  
                <radControls:GridViewDataColumn.CellTemplate> 
                    <DataTemplate> 
                        <StackPanel Orientation="Horizontal">  
                            <input:AutoCompleteBox HorizontalAlignment="Left" ItemsSource="{Binding Names}" SelectionChanged="OnSelectionChanged"/>
                        </StackPanel> 
                    </DataTemplate> 
                </radControls:GridViewDataColumn.CellTemplate> 
            </radControls:GridViewDataColumn> 
        </radControls:RadGridView.Columns> 
    </radControls:RadGridView>