2010-07-22 81 views
0

我正在创建一个带有dataview类型的itemource的列表框。我想将列表框滚动到未选中的特定项目。我为选定的项目使用以下代码。Listbox ScrollIntoView问题wpf

代码:

绑定列表框:

DataView dv = newDt.DefaultView; 
      dv.Sort = "Count Desc"; 
      lbResult.DataContext = dv; 

要获得基于ID行:

var selectResult = from mypro in albumDetails.ToTable().AsEnumerable() where mypro.Field<string>("ID")==search.ID select mypro; 

      if (lbResult.SelectedItem != null) 
      { 
       lbResult.ScrollIntoView(**lbResult.Items[0]**); 
      } 

如何获得该指数如果在列表框中的行。

Geetha

+0

实际上,lbTrack.SelectedItem是该列表项的视图模型datacontext对象。您可以提供任何收集项目而不是SelectedItem将带来的视图。 – Ragunathan 2010-07-22 04:27:51

+0

我正在尝试。但如何获得物品。我正在使用下面的代码来获取特定的行。 var selectResult = from myRow in details.ToTable()。AsEnumerable()where myRow .Field (“ID”)== search.ID select myRow; lbResult.Items.IndexOf(selectResult.ElementAt(0)); 但它给-1指数。 – Geeth 2010-07-22 04:33:54

+0

try lbResult.Items [0] – Ragunathan 2010-07-22 04:50:54

回答

0

我不知道什么是albumDetails对象。这里是从DataView获取索引的代码。

DataRow row = dataview.Select("ID='" + search.ID + "'")[0]; 
int i= dataview.Rows.IndexOf(row); 
+0

浩还没有得到-1索引 – Geeth 2010-07-22 06:27:33

+0

你是否得到适当的行值?什么是albumDetails对象? – Ragunathan 2010-07-22 08:02:38

+0

我正在获取行值。 – Geeth 2010-07-22 08:43:14