我目前正在telerik的radgrid控件中显示数据,我想在名为“Name”的列上添加一个自动文本框。我怎么能这样做?
我的radgrid只显示数据,我希望每当用户进入文本框时,会弹出一个名称列表,就像在stackoverflow网站中一样。
请帮助..我一直在使用silverlight,wcf ria服务,telerik控件。
答案 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>