2010-04-19 3 views
1

하나의 열에 버튼 만있는 RadGridView가 있습니다.Telerik에서 셀 상태를 유지 Silverlight 용 RadGridView

그리드의 특정 레코드에 연결된 부울 변수의 값에 따라 버튼이 포함 된 셀을 활성화하거나 비활성화 할 수 있습니다. 이것은 내가 이것을 달성하는 방법이다 : 내 그리드는 수평 및 수직 스크롤이 있기 때문에

foreach (Item item in this.radGridView.Items) 
{ 
    row = this.radGridView.ItemContainerGenerator.ContainerFromItem(item) as GridViewRow; 

    if (row != null) 
    { 
     cell = (from c in row.Cells 
       where c.Column.UniqueName == "buttonCol" 
       select c).FirstOrDefault(); 
     if (cell != null) 
     { 
      if (item.buttonEnabled) 
      { 
       cell.IsEnabled = true; 
      } 
      else 
      { 
       cell.IsEnabled = false; 
      } 
     } 
    } 
} 

문제는 내가 행과 열 가상화를 사용하고 있기 때문에, 표시되지 않습니다 버튼을 포함하는 세포의 상태가 손실됩니다. 필자의 그리드에 많은 데이터가 있기 때문에 가상화를 사용하지 못하게하는 것은 해결책이 될 수 없습니다.

표시되는 값이 변경 될 때마다 단추 셀의 상태를 설정하는 내 함수를 호출하는 데 가장 적합한 RadGridView의 이벤트가 궁금합니다.

답변

0

this blog post에 나와있는 방법을 사용할 수 있습니다.

+0

감사합니다. 블라드. 실제로 RowLoaded 이벤트를 사용하면 세로로 스크롤 할 때 작업이 수행됩니다. 그러나 가로 스크롤에 대해 "ColumnLoaded"와 같은 이벤트를 찾을 수 없습니다. 어떤 아이디어? – jbethier

+0

아이디어는 이전 답글의 블로그 게시물에 표시된대로 IValueConverter를 사용하는 것입니다. 이것은 열과 행 가상화에서 예상대로 작동합니다. 또한 최근에 우리는 그리드에 대한 스타일 및 템플릿 선택기를 도입했으며이를 사용하여 목표를 달성 할 수 있습니다. 자세한 내용은 내 블로그 게시물을 확인하십시오. http://blogs.telerik.com/vladimirenchev/posts/10-04-01/conditional_styles_and_templates_with_radgridview_for_silverlight_and_wpf.aspx –

관련 문제