我有一个gridview,根据每行的数据类型,我想显示一个文本框或列表框。
如何根据gridview每行的数据类型显示列表框或文本框。
Obs *我正在使用devexpress控件,所以我会接受这两个答案,适用于Windows窗体标准控件或devexpress套件。
谢谢大家。
答案 0 :(得分:0)
我的问题不清楚根本,但也许您有自定义的行类型并且正在尝试做类似的事情
public class ListBoxRow : Row {}
public class TextBoxRow : Row {}
List<Row> rows = new List<Row>(){new ListBoxRow(), new TextBoxRow()}
foreach (Row r in rows)
{
If (r is ListBoxRow) {//Create ListBox }
If (r is TextBoxRow ) {//Create TextBox }
}
答案 1 :(得分:0)
您可以利用Designer中的一个内置事件(如ShowingEditor)并通过从事件的args获取行的句柄来检查行的类型。然后,您可以找出您的类型,并创建Listbox或Textbox的新实例。您可以在此处阅读更多文档:
Dev Express ShowingEditor Event Docs
如果你想在代码中执行此操作,在初始化视图后,你可以使用gridview并执行类似的操作(在C#中):
this.myGridView.ShowingEditor += (sender, args) =>
{
var gridView = sender as GridView;
if(null != gridView)
{
var currentRowHandle = gridView.FocusedRowHandle;
var currentType = gridView.Rows[currentRowHandle].GetType();
if(currentType == typeof(TypeA))
{
//Make a ListBox
}
if(currentType == typeof(TypeB))
{
//Make a TextBox
}
}
}
显然这里要写的代码更多,但我认为这会让你开始。
答案 2 :(得分:-1)
你可以使用一种风格,here一篇带有一些例子的文章,我希望你喜欢它。