Как я могу привязать TextBlock к ресурсу ObjectDataProvider, определенному в app.xaml? - PullRequest
0 голосов
/ 16 ноября 2011

У меня есть приложение WPF с MVVM, у него есть Ap.XAML, который выглядит следующим образом.

 <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 я хочу привязаться к объектному провайдеру SAG_POK в Ap.xaml.

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

Моя проблема в том, что в одной из моих моделей просмотра я создаю экземпляр ObjectDataProvider SAG_POK в App.xaml с экземпляром SAG_POK.

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

Но я не могу понятьгде поставить свой OnNotifyPropertyChanged ("SAG_POK") Я пробовал разные сценарии, но ни один из них, похоже, не работает.

Кто-нибудь, кто пробовал это раньше? Пожалуйста, дайте мне знать о любых подсказках, заранее спасибо.

1 Ответ

0 голосов
/ 16 ноября 2011

вы можете сделать это

<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 - это модель основного вида :-) в приложении для отверстий

надеюсь, это поможет

...