2017-12-31 194 views
2

MVR과 함께 SparxEA 용 애드 인을 구현하려고합니다. 재미있는 사실 중 하나는 MVVM Light의 과정에서 언급 한 것처럼 "라이브"데이터를 창에 표시하는 것입니다. 그래서 나는 똑같이하고 싶다. 클래스 라이브러리 프로젝트에서 App.XAML을 사용할 수 없습니다.Visual Studio의 XAML 편집기 창에서 "라이브"데이터 및 실행중인 응용 프로그램

<Window x:Class="GoatJira.View.About" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:local="clr-namespace:GoatJira.View" 
    xmlns:viewmodel="clr-namespace:GoatJira.ViewModel" 
    mc:Ignorable="d" 
    Title="{Binding Path=AboutTitle}" Height="322.613" Width="573.608" ResizeMode="NoResize" ShowInTaskbar="False" WindowStartupLocation="CenterScreen" Initialized="Window_Initialized" 
    DataContext="{Binding Source={StaticResource ResourceKey=AboutData}}" 
    > 

<Window.Resources> 
    <ResourceDictionary> 
     <viewmodel:AboutViewModel x:Key="AboutData"/> 
    </ResourceDictionary> 
</Window.Resources> 
… 

이 완벽 비주얼 스튜디오 IDE 내에서 작동합니다 XAML에서

나는이 코드를 가지고있다. 응용 프로그램을 실행하고 창을 인스턴스화 할 때 체코 어 번역 된이 예외가 발생합니다. AboutData로 표시된 원본을 찾을 수 없습니다. 출처의 이름은 대소 문자를 구분합니다.

DataContext를 사용하여 10 번째 줄을 제거하면 VS 내에서 바인드 데이터를 볼 수 없으며 반면에 코드에서 DataContext를 할당하면 응용 프로그램이 올바르게 작동합니다. 내 이해는 VS에서 작동하고 아무 것도 변경하지 않고 앱을 실행하는 방법이 있다는 것입니다.

내가 뭘 잘못하고 있는지 아십니까?

필요한 경우 전체 코드는 https://github.com/SlavekRydval/GoatJira입니다. 당신은 리소스 섹션 이후에 DataContext를 이동하면 어떻게됩니까

답변

1

<Window blah=for> 
    <Window.Resources> 
     <ResourceDictionary> 
      <viewmodel:AboutViewModel x:Key="AboutData"/> 
     </ResourceDictionary> 
    </Window.Resources> 

<Window.DataContext> 
     <StaticResourceExtension ResourceKey="AboutData"/> 
</Window.DataContext>