[Silverlight] 在 Telerik Gridview 控件中使用级联下拉列表





5.00/5 (3投票s)
在 Telerik Gridview 控件中使用级联下拉列表
引言
如何在 Telerik gridview 控件中使用级联下拉列表?
解决方案
我将解释如何在 Telerik gridview 控件中使用级联下拉列表。总体方法大致相同。回顾一下,在使用级联 DropDownList
控件时,需要执行以下任务:
- 填充每个
DropDownList
控件。 - 预先选择每个列表中与当前数据匹配的适当值。
- 当用户在主下拉列表中选择一个新值时,使用一组新的相关值重新填充详细下拉列表。
这里涉及表格的模式信息。
请看:
表:City (ID,Name,ContinentCodel)
表:Continent(Code,Name)
正如我所说,你可以在 GridView
控件中以类似但并非完全相同的方式执行此操作,就像在页面中执行一样。假设你有一个在正常模式下看起来像这样的网格
<telerik:radgridview x:name="radGridView" autogeneratecolumns="True">
</telerik:radgridview>
并且看起来像这样

配置列时,设置 AutoGenerateColumns="False"
并添加如下列:
<telerik:radgridview.columns>
<telerik:gridviewcomboboxcolumn datamemberbinding="
{Binding ContinentCode, Mode=TwoWay}" header="Continent"
displaymemberpath="Name" selectedvaluememberpath="Code">
<telerik:gridviewcomboboxcolumn itemssourcebinding="
{Binding AvailableCountries}" datamemberbinding="{Binding CountryID}"
header="Country" displaymemberpath="Name"
selectedvaluememberpath="ID" width="400">
</telerik:gridviewcomboboxcolumn></telerik:gridviewcomboboxcolumn>
</telerik:radgridview.columns>
当 Continent 改变时,使用以下代码设置国家/地区:在 Continent 选择的更改事件中,看起来像这样:在 MainPage 构造函数中附加事件,如下所示:
this.AddHandler(RadComboBox.SelectionChangedEvent,
new Telerik.Windows.Controls.SelectionChangedEventHandler(comboSelectionChanged));
选择更改事件
void comboSelectionChanged(object sender, RadRoutedEventArgs args)
{
RadComboBox comboBox = (RadComboBox)args.OriginalSource;
if (comboBox.SelectedValue==null
|| comboBox.SelectedValuePath != "Code")
return;
Location location = comboBox.DataContext as Location;
location.ContinentCode = (string)comboBox.SelectedValue;
}