0

내 대상 빌드로 설정된 버전 7.1의 Windows Phone에서 응용 프로그램을 개발 중입니다. 내가 겪고있는 문제는 내 페이지의 목록보기가 표시를 거부한다는 것입니다.다른 결과를 제공하는 에뮬레이터

목록이 내부 내용으로 구문 분석되도록 디버깅했습니다. 또한 응용 프로그램은 Windows 8 에뮬레이터를 사용할 때 잘 실행됩니다. 그러나 응용 프로그램의 다른 페이지에서 다른 목록보기를 채우는 데 사용 된 것과 같은 기술은 표시되지 않는이 단일 페이지에서 모든 에뮬레이터에서 잘 작동합니다.

바인딩 스택 패널의 색상을 설정하여 표시할지 여부는 알 수 있지만 내용이 없어도 표시됩니다. 정말 혼란스럽고 코드가 완벽합니다. 나는 Windows 전화 에뮬레이터를 사용하기 전에이 문제가 떠오르는 지 궁금합니다.

private void countdownClient_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e) 
    { 
     HtmlDocument doc = new HtmlDocument();    
     if (e.Error != null) 
     { 
      //MessageBox.Show(e.Error.InnerException.Message + "\n Ensure You Have A Working Internet Connection");     
      return; 
     } 
     doc.LoadHtml(e.Result); 
     String noCountdown = "<div><span>Sorry no buses are expected within 30 minutes of this stop. Please try again later or go to www.tfl.gov.uk</span></div>"; 

     if (e.Result.Contains(noCountdown)) 
     { 
      //No Buses Expected; 
      return; 
     } 
     else 
     { 
      HtmlNode stopCountdownNode; 
      try 
      { 
       stopCountdownNode = doc.DocumentNode.SelectSingleNode("//*[contains(@id, 'stopBoard')]").SelectSingleNode("tbody"); 
      } 
      catch (Exception) 
      { 
       MessageBox.Show("Error Responce From Server"); 
       return; 
      } 

      if (stopCountdownNode != null) 
      { 
       HtmlNodeCollection countdownNodeList = stopCountdownNode.SelectNodes("tr"); 
       CountDownListBox.ItemsSource = GetCountdownList(countdownNodeList); 
      } 
     } 
    } 

    private ObservableCollection<BusCountdown> GetCountdownList(HtmlNodeCollection countdownNodeList) 
    { 
     ObservableCollection<BusCountdown> countdownList = new ObservableCollection<BusCountdown>(); 
     foreach (HtmlNode countDown in countdownNodeList) 
     { 
      String busName = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resRoute')]").InnerHtml); 
      String busDestination = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resDir')]").InnerHtml); 
      String countDownTime = HttpUtility.HtmlDecode(countDown.SelectSingleNode("*[contains(@class, 'resDue')]").InnerHtml); 
      countdownList.Add(new BusCountdown(busName, busDestination, countDownTime));  
     }              
     return countdownList; 
    } 

    public string GetRandomSlash() 
    { 
     Random r = new Random(); 
     String slash = ""; 
     int rand = r.Next(1, 20); 
     for (int i = 0; i < rand; i++) 
     { 
      slash += "/"; 
     } 
     return slash; 
    } 

답변

1

public에 바인딩하는 데 사용할 클래스 액세스 지정자를 설정하고 시도해보십시오. 작동하는지 알려주세요. 예를 들어

는 :

public class Bindingclass 
{ 
public string Name{get;set;} 
} 
+0

모든 바인딩 속성은 이미 공개되지 않았더라도 작동하지 않을 수도 있습니다. –

+0

속성은 기본적으로 public입니다. 그렇지 않으면 아무 데서도 작동하지 않을 것입니다 ... 클래스의 속성을 올바르게 정의 했습니까? 그 수업을 공개로 만드십시오 ... \ – Mani

+0

오, 그렇습니다. 당신은 내 모든 이전 수업이이 문제와 별개로 공공 rfix를 가졌다 고 옳았습니다. 왜? 나는 아무런 단서가 없습니다. 고맙습니다 –

0
  1. Expression Blend를를 사용해보십시오 또한 이전 솔루션 파일을 삭제하고 는 새로운 솔루션을 구축 할 수 있습니다.
  2. 빌드 작업 속성을 모든 페이지에 대해 올바르게 설정하십시오.
  3. SDK를 7.8 버전으로 업데이트하십시오. 에뮬레이터에는 에뮬레이터 7.1 (256MB), 에뮬레이터 7.1 (512MB), 에뮬레이터 7.8 (256MB), 에뮬레이터 7.8 (512MB) 등 여러 가지 옵션이 제공됩니다. 이 모든 버전에서 테스트하고 각 에뮬레이터 유형에서 출력을 확인하십시오.

적어도 하나가 도움이 되었기를 바랍니다. 저희에게 알려주십시오.

+0

나는 창문을 사용하고 있습니다 8 sdk cant는 모든 에뮬레이터에서만 잘 작동하며, 한 페이지는 win 7.1 에뮬레이터에서 작동하지 않습니다. 재미있는 점은 동일한 7.1 에뮬레이터의 이전 페이지가 동일한 디스플레이 기술을 사용하고 완벽하게 작동한다는 것입니다. –

+0

통찰력을 높이기 위해 코드 대화 상대를 공유하십시오. –

+0

지금 확인 @rjBombil –

관련 문제