2013-08-27 2 views
0

여기에 앱의 확장 프로그램을 구축하는 것이 내 문제입니다.주 사용자에게보기 추가 어려움

이 메인 레이아웃 XAML 페이지이며,이

은 내가이 레이아웃 페이지에 배치 할 뷰를 생성 (앱에 다른 레이아웃을 사용할 수 있습니다 의미) 주요 응용 프로그램 데이터 소스에 바인딩합니다. 내보기에는 응용 프로그램에서 "도구"가 클릭되면 설정되는 자체 뷰 모델이 있습니다. 레이아웃 내 뷰 모델 매번 안타 디버깅에서 주요 응용 프로그램

<Grid d:DataContext="{Binding Source={StaticResource ViewerDataSource}}"> 

에를 conect 아무것도하지만, 업데이트 결코 할

는 데이터 소스입니다.

내가

<!--Begin Custom Tab Item--> 
        <sdk:TabItem Name="StatisticsTabItem" Cursor="Hand" Visibility="Visible"> 
         <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> 
          <Grid.RowDefinitions> 
           <RowDefinition Height="20" /> 
           <RowDefinition Height="*" /> 
          </Grid.RowDefinitions> 

          <!-- Add Stats view here--> 
          <views:StatisticsView x:Name="StatsView" DataContext="{Binding BindsDirectlyToSource=True}" Grid.Row="1"/> 
         </Grid> 
        </sdk:TabItem> 

처럼 메인 레이아웃에 내보기를 추가 그래서 현재는 내보기 매번에 라벨을 설정하고 올바르게 설정하지만 아무것도 주요 레이아웃 XAML 내에서 실제보기에 업데이트되지됩니다

내 다른 응용 프로그램에서

private string totalPop; 
    public string TotalPop 
    { 
     get { return totalPop; } 
     set 
     { 
      if (totalPop != value) 
      { 
       totalPop = value; 
       OnNotifyPropertyChanged("TotalPop"); 
      } 
     } 
    } 

<sdk:Label x:Name="lbltotPop" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" Content="{Binding TotalPop}" /> 

잘 작동 나의 레이블을 설정하지만, 내보기에 바인딩하는 것은 업데이트 될 때 설정하는 방법을 잘 모릅니다 않았다.

답변

0

기본 레이아웃 XAML에서 뷰의 DataContext 속성을 설정하면 뷰가 인스턴스화됩니다 (뷰에서 부모로부터 DataContext를 상속받지 않아도됩니다).

피해야 할 또 다른 일은 네임 스페이스 "d :"를 DataContext 속성으로 사용하는 것입니다. 일반적으로이 네임 스페이스는 Design DataContext에 사용됩니다.

+0

앱 빌더이며 앱 빌더의 레이아웃에 맞는 확장 기능 만 만들고 있습니다. 이미 d : DataContext로 프로그램되어 있습니다. – JcMey3r

+0

DataContext가 초기화되고 올바른 개체 인스턴스를 가리키고 있는지 확인하십시오 (디버그 로컬 창에서 FinalSource 속성 확인).). d : DataContext는 런타임 DataContext 인스턴스가 아닌 런타임 DataContext 인스턴스를 설정하는 데 사용됩니다. http://msdn.microsoft.com/en-us/library/ff602277(v=vs.95).aspx를 확인하십시오. 또한 {Binding ... Source = {StaticResource ...}} 대신 {StaticResource ViewerDataSource}를 사용하여 바인딩을 설정할 수 있습니다 – tmoreira

+0

기본 레이아웃에 내 자신의 뷰 모델을 추가하고 디버거를 모두 올바르게 보았습니다 지금 연결 ... 지금 유일한 문제는 변경된 속성이 올바르게 업데이트 된 경우에도 항상 null로 유지된다는 것입니다. – JcMey3r