2013-10-21 61 views
-1

我有一個gridview並基於每一行的數據類型,我想顯示一個文本框或列表框。GridView中的列表框或文本框

如何根據GridView每行的數據類型顯示列表框或文本框。

Obs *我使用devexpress控件,所以我會接受這兩個答案,對於Windows窗體標準控件或devexpress套件。

謝謝大家。

+0

你有一些代碼可以顯示你所嘗試的嗎?你是什​​麼意思_data類型在每一行_? – Harrison

+0

還沒有任何編碼。關於數據類型,您可以使用A型和B型作爲示例,因爲我稍後會定義它們。在這個例子中,A類是A類,B類是B類。 –

+0

爲什麼我會得到負面評價? –

回答

0

,你可以很可能利用內置的事件之一在Designer中(如ShowingEditor),並通過從事件的參數中獲取行的句柄來檢查行的類型。然後你可以找出你的類型在這裏,並創建一個新的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 
     } 
    } 
} 

顯然還有更多的代碼要寫在這​​裏,但我認爲這會讓你開始。

+0

Omg,這個社區很瘋狂,我正在閱讀你之前發佈的答案,然後你在我的問題中展示了正確的答案,令人難以置信。 感謝您的幫助。不明白爲什麼我的問題值得消極投票。 –

-1

你可以使用一種風格,here一篇文章,有一些例子,我希望你喜歡它。

+0

感謝您的支持,但wpf是XAML .. –

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 } 
} 
+0

這是類似的東西,我會稍後嘗試此代碼(現在工作),併發布結果,在此先感謝。 –