2011-09-30 35 views
0

在控件屬性中,新行的名稱等於體積行62並且行索引等於61 - 記錄並在少數列中添加值。編碼UI - 如何識別動態插入的網格行和列

當我用外部數據插入一個新行並填充各個列時,它會嘗試覆蓋記錄中使用的行中的列數據,而不是正在插入的行中的列數據。

如果我從行屬性中刪除了62和61並使其成爲一般,它將轉到網格中的第一行並嘗試編輯。

應該更改或搜索哪些屬性,以便在新行(其名稱和行索引未知)中正確填充列。

任何幫助表示讚賞。

謝謝。

+0

「其名稱和行索引是不知道」發現他們,這只是一般的解決方案。 –

+0

請指導我如何找到動態行和索引 – Mush

+0

雖然我不知道你的UI的細節,我建議你控制插入到表中的值。所以我會使用它的內容搜索行:1)遍歷所有行2)找到當前行的單元格3)如果單元格的文本與最後一個輸入相匹配,則找到行 –

回答

0

要在我們的應用程序中解決這個問題,我們導出了UI映射方法並使用VAR創建了一個臨時列表我不知道這是否適用於您,但是解決了我們關於動態網格行和列的幾個問題:

公共無效DoubleClickLaunch_UOW(){

 var temp = this.UIWindow.UIUnitGridTable.GetChildren().ToList(); 
     temp.RemoveAt(0); 
     var rows = temp.Select(t => t.GetChildren().Select(s => s.GetValue()).ToList()).ToList(); 

     var tractLetters = rows.Select(s => s[1]).ToList(); 

     var index = tractLetters.IndexOf(DoubleClickLaunch_UOWParams.UITESTUNIT_TPText); 
     if (index >= 0) 
     { 
      var textbox = temp[index].GetChildren()[1].GetChildren()[0]; 
      Mouse.DoubleClick(textbox); 
     } 
     else 
     { 
      Mouse.DoubleClick(this.UIWindow.UIUnitGridTable.UIItemRow.UIUnitNameCell.UITESTUNIT_TPText); 
     }