2010-07-22 6 views
0

dataview 형식의 itemsource를 사용하여 목록 상자를 만듭니다. 목록 상자를 선택하지 않은 소 정의 항목으로 스크롤하려고합니다. 선택한 항목에 다음 코드를 사용하고 있습니다.목록 상자 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은 해당 목록 항목에 대한 viewmodel datacontext 개체입니다. SelectedItem 대신 컬렉션 항목을 제공하면 표시 할 수 있습니다. – Ragunathan

+0

나는 똑같은 것을 시도하고있다. 그러나 항목을 얻는 방법. 특정 행을 얻으려면 다음 코드를 사용하고 있습니다. var selectResult = details from MyRow details.ToTable(). AsEnumerable() myRow .Field ("ID") == search.ID select myRow; lbResult.Items.IndexOf (selectResult.ElementAt (0)); 하지만 -1 색인을 제공합니다. – Geeth

+0

lbResult.Items [0] – Ragunathan

답변

0

나는 앨범 디테일 개체가 무엇인지 알지 못합니다. 다음은 DataView에서 인덱스를 가져 오는 코드입니다.

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

여전히 메신저 -1 색인 – Geeth

+0

을 받고 계신가요? 올바른 행 값을 얻고 있습니까? albumDetails 객체 란 무엇입니까? – Ragunathan

+0

행 값이 나타납니다. – Geeth