2017-12-31 149 views
2

私は、MVVM LightでSparxEA用のアドインを実装しようとしています。興味深いと分かったことの1つは、MVVM Lightのコースで言及されているように、ウィンドウに「ライブ」データが表示されていることです。だから、私は同じことをしたいと思います。クラスライブラリプロジェクトがあるので、私はApp.XAMLを使用できません。 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> 
… 

は、これは完全にVisual StudioのIDE内で動作します。アプリケーションを実行してウィンドウをインスタンス化するとき、私はこの例外(チェコ語から翻訳された)を取得します。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> 
関連する問題