2011-09-30 2 views

답변

4

WP7에서는 새로 고침이나 다시 그리기 개념이 없습니다. Silverlight는 다양한 UI 요소가 유지되고 관리되는 보유 모드 그래픽을 사용합니다.

UI를 '새로 고침'하려면 UI 요소의 속성을 간단히 변경해야합니다. 프레임 워크는이 변경 사항을 화면에 반영합니다. 그럼 당신 만 또는 제어 관찰 특성 (목록 상자)

(해당 페이지에 많은 데이터 항목이있는 경우) 데이터가 하나 별도의 뷰 모델에 각 피벗 항목의 내용을 결합에

+0

안녕하세요 UI 요소의 속성은 무엇입니까? 제발 간단히 설명해 주시겠습니까? 문제가 생겨서 미안합니다. 저는이 플랫폼을 새로 도입했습니다. – Jeeva

1

좋은 솔루션이 될 것입니다 독립적으로 속성 또는 viewmodel을 새로 고쳐야하는 경우 성능 향상을 위해 피벗 컨트롤의 모드 데이터 페이지에서 수행되는 작업 (피벗 제어 페이지의 표시 속도를 높이기 위해 데이터로드 지연)

기억해야 할 가장 좋은 점은 다음과 같습니다. 피벗 페이지가 새로 고쳐지지 않고 데이터가 새로 고쳐집니다.

피벗 항목 수를 동적으로 제어하려면 프로그래밍 방식으로 제어해야합니다.

+0

5 피벗 항목을 동적으로 추가하고 싶습니다. 나는 단추를 만들고 있는데 버튼을 클릭하면 모든 피벗 항목 코드 NavigationService.Navigate (새 Uri (NavigationService.Source + "? Refresh = true", UriKind.Relative))를 다시로드합니다. 별도의 피벗 항목을 다시로드하는 코드가 필요합니다. – Jeeva

+0

@Darkside 해결책을 사용하고 있습니다. 그러나 나는 그 피벗이 화면에 무엇이 업데이 트를 참조하십시오! – onmyway133

0

다음 접근 방식을 사용하고 있습니다. 모든 PivotItem은 BaseUserControl에서 상속 된 별도의 UserControl입니다. BaseUserControl에는 OnPivotItemLoaded와 OnSelected의 두 가지 추상 메서드가 있습니다.

기본적으로 PivotItem은 비어 있습니다 (또는 사례와 같이 런타임에 만들 수 있음). 나는 그런

private void PivotItemProfile_OnLoaded(object _sender, RoutedEventArgs _e) 
    { 
     SimpleLogger.WriteLine("Creating ProfileUserControl"); 
     var pivotItem = _sender as PivotItem; 
     if (pivotItem == null) return; 

     if (pivotItem.Content == null) 
      pivotItem.Content = new ProfileUserControl(); 

     var item = (pivotItem.Content as BaseUserControl); 
     if (item != null) 
      item.OnPivotItemLoaded(); 
    } 

를 호출하고있어 다음 , 피벗의 항목이로드 될 때 (다만 그 이벤트를 구독은), 나는 또한 피벗의 OnSelectionChanged 이벤트에 가입하고 있습니다 :

private void PivotControl_OnSelectionChanged(object _sender, SelectionChangedEventArgs _e) 
    { 
     var pivotItem = MainPivot.SelectedItem as PivotItem; 
     if (pivotItem == null) return; 

     var item = (pivotItem.Content as BaseUserControl); 
     if (item != null) 
      item.OnPivotItemSelected(); 
    } 

그래서, PivotItem의 내부 (UserControl) 나는 그 이벤트에서 무엇을하고 싶은지를 정의 할 수있다.

관련 문제