首页 文章

在silverlight中使用自动完成框?

提问于
浏览
2

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

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

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

1 回答

  • 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'( Headers :输入下方) . 加载后,您可以通过单击窗口底部的任何一个项目来查看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>
    

相关问题