2011-11-16 2 views
0

MVVM을 사용하는 WPF 응용 프로그램이 있는데, 다음과 같은 Ap.XAML이 있습니다.app.xaml에 정의 된 ObjectDataProvider 리소스에 TextBlock을 바인딩하려면 어떻게해야합니까?

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Assets/StyleDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
     <ObjectDataProvider x:Key="SAG_POK" ObjectType="{x:Type or:SAG_POK}" /> 
    </ResourceDictionary>   
</Application.Resources> 

자, MainWindow.XAML에 나는 Ap.xaml의 SAG_POK ObjectDataprovider에 바인딩합니다.

<StackPanel 
    DataContext="{Binding Source={StaticResource SAG_POK}}"> 
    <TextBlock Name="ValgtSag" Text="{Binding ToStringProperty}"/> 
</StackPanel> 

내 문제는 내 viewmodels 중 하나에, 내가 SAG_POK의 인스턴스와 App.xaml에서 SAG_POK ObjectDataProvider의 인스턴스이다.

App.Current.Resources["SAG_POK"] = SagSelecteditem; 

하지만 내 OnNotifyPropertyChanged ("SAG_POK") 나는 다른 시나리오를 시도했지만 그들 중 누구도 작동하는 것 같다하지를 넣어 위치를 알아낼 수 없습니다.

이전에 사용해 보신 분 누구든지 사전에 감사의 말을 알려주십시오. 당신은을 사용하는 이유는 무엇입니까 :

+0

하는 데 도움이 이미 ViewModels을 가지고있을 때 ObjetcDataProvider? 뷰를 ViewModel에 직접 바인드하지 않는 이유는 무엇입니까? – SvenG

+0

Objectdataprovider는 응용 프로그램의 여러 위치에서 사용되고 viewmodel은 창이 아닌 페이지에서 사용되기 때문에. – ThomasE

+0

그런 자원을 "설정"하지 마십시오. 참조 될 때 인스턴스화되고 매 인스턴스가 매번 재사용됩니다. ODP를 사용하려는 방식은 기이합니다. 왜 SAG_POK 인스턴스를 리소스로 추가하지 않습니까? ODP를 다음과 같이 바꿉니다 :'' – Will

답변

0

<Application.Resources> 
    <ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Assets/StyleDictionary.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
     <!--<ObjectDataProvider x:Key="SAG_POK" ObjectType="{x:Type or:SAG_POK}" />--> 
     <local:MainViewModel x:Key="SAG_POK" /> 
    </ResourceDictionary>   
</Application.Resources> 


<StackPanel DataContext="{Binding Source={StaticResource SAG_POK}}"> 
    <TextBlock Name="ValgtSag" Text="{Binding ToStringProperty}"/> 
</StackPanel> 

App.Current.Resources["SAG_POK"].SelectedItem = SagSelectedItem; 

MainViewModel 구멍 응용 프로그램에서 행해져 Yout 기본보기 모델 :-)이다 할 수

희망이 나는 그것을 얻지 않는다

+0

고마워, 완벽하게 작동했습니다 :-) – ThomasE

관련 문제