-1

我有一个gridview,根据每一行的数据类型,我想显示一个文本框或列表框。

如何根据 gridview 每一行的数据类型显示列表框或文本框。

Obs* 我正在使用 devexpress 控件,因此对于 Windows 窗体标准控件或 devexpress 套件,我会接受这两个答案。

谢谢大家。

4

3 回答 3

0

你的问题对我来说根本不清楚,但也许你有一个自定义的 Row Type 并且正在尝试做这样的事情

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 }
}
于 2013-10-21T16:25:14.457 回答
0

您可能会利用设计器中的一个内置事件(如 ShowingEditor)并通过从事件的参数中获取行的句柄来检查行的类型。然后,您可以确定您的类型在这里并创建一个新的 Listbox 或 Textbox 实例。您可以在此处阅读更多文档:

Dev Express ShowingEditor 事件文档

如果您想在代码中执行此操作,则在初始化视图后,您可以使用 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
        }
    }
}

显然这里还有更多的代码要写,但我认为这会让你开始。

于 2013-10-22T00:37:15.870 回答
-1

你可以使用一种风格,这里有一些例子的文章,希望你喜欢。

于 2013-10-21T16:19:01.453 回答