2012-09-25 5 views
0

트레이로 이동해야하는 WPF 응용 프로그램이 있습니다. 현재 UI에서 직접 시작되며 두 개의 탭이 있습니다. 두 번째 탭에는 연결된 장치에 대한 설정을 유지하는 접을 수있는 컨테이너가 두 개 있습니다. 장치를 동적으로 추가하거나 제거 할 수 있습니다.WPF XAML 디버깅

난 트레이 응용 프로그램을 추가하고 응용 프로그램에서 설정을 호출하는 코드를 추가했습니다. 접을 수있는 컨테이너가 비어있는 경우를 제외하고는 모든 것이 올바르게 작동합니다. 코드를 추적 해 객체에 객체가 있어야 함을 확인했습니다.

UI에 기본 응용 프로그램을 설정하면 이상하게 작동하지만 트레이에서 UI를 시작할 때는 작동하지 않습니다. 나는 2010 년과 2012 년에 도구를 발견 VS 2008 년 XAML 디버깅을위한 좋은 방법이 있다면

<c:CollapsibleSection Header="Senders"> 
     <c:CollapsibleSection.CollapsedContent> 
      <c:RepeatControl Margin="30,0,0,0" ItemsSource="{Binding SendersList}" 
           ItemType="{x:Type m:Sender}" List="{Binding SendersList}" 
           ItemTemplate="{StaticResource SenderSummary}"/> 
     </c:CollapsibleSection.CollapsedContent> 
     <Border BorderThickness="1" BorderBrush="Chocolate" Margin="30,0,0,0"> 
      <c:RepeatControl ItemsSource="{Binding SendersList}" ItemType="{x:Type m:Sender}" List="{Binding SendersList}" ItemTemplate="{StaticResource SenderTemplate}"/> 
     </Border> 
    </c:CollapsibleSection> 

내가 아니다 WPF에 대해 잘 알고, 그리고 궁금 해서요 : 나는 아래의 XAML의 섹션을 포함했다 , 그리고 몇 가지 오래된 게시물은 기본적인 해결 방법을 알려주지 만 2007 년에는 많은 것을 찾지 못했습니다.

UI가 시작으로 시작될 때 제대로 작동하지 않을 수있는 원인을 알고 싶어합니다. 프로젝트이지만 다른 프로젝트에서 호출 할 때는 그렇지 않습니다. 이 프로젝트는 처음에는 UI로 시작 프로젝트로 개발되었으며 트레이는 별도의 프로젝트입니다. 또한 UI는 기본 프로젝트 폴더와 UI 폴더에있는 여러 클래스로 구성됩니다. 그러나 모든 xaml에 액세스하고있는 것으로 보입니다 (CollapsibleSection이있는 클래스의 다른 부분이 만들어 짐).

예외가 발생하지 않습니다.

추가 정보는

또한 언 바운드 텍스트가 보낸 사람에 나타납니다,하지만 여전히 아무것도 표시되지 않습니다 있는지 확인하기 위해 테스트 된 본체를 추가했습니다. 추가 된 코드는 다음과 같습니다.

<TextBlock Name="testTextBlock"> 
    <ContentControl Content="This is just a test... " Foreground="Red">/ContentControl> 
</TextBlock> 

감사합니다.

+2

Visual Studio에 대한 5 가지 최고의 소원은 디버그 XAML입니다. PresentationTrace를 높게 설정하면 출력을 얻을 수 있습니다. – Paparazzi

+0

감사합니다. Blam, 답변 해주세요. 불행히도 PresentationTrace는 VS 2010의 기능입니다.이 프로젝트는 2008 년에 개발되었습니다. 다시 고마워. – Tim

+0

변환 할 예정이라면 2012로 이동하십시오. PresentationTrace는 실제로 디버거가 아닙니다. 난 그냥 바인딩 오류를 출력합니다. – Paparazzi

답변

0

나는 마침내 이것을 알아 냈습니다. UI를 인스턴스화하는 대신 전체 WPF 응용 프로그램을 호출하여 실행해야합니다. 그러면 App.xaml이 사전을로드하고 다른 WPF 양식이 사전에로드 할 수 있습니다. 이것은 다음 코드로 수행됩니다

private void settingsEvent_Click(object sender, EventArgs e) 
    { 
     app.InitializeComponent(); 
     gui = new Sender_Receiver.mainWindow(); 
    } 
    private static App app = new App(); 

이 실험을 통해 발견 된, 그래서 그것이 가장 좋은 방법이 아닙니다 확신하지만, 지금 작동하고, 그것이 내가 필요로 무엇을이었다.

감사합니다. Blam, 당신의 공헌에 감사드립니다! 나는 그 (것)들을 도움이되는 찾아 냈다.