UWPの観点からMVVMに入ろうとしています。すべてが WPF とほとんど同じように機能しているように見えますが、適切な ViewModel/View Mapping を実行できません。Microsodt-Specialist: https://channel9.msdn.com/Events/Build/2015/3-635によると、約 20 分で開始され、ResourceDictionaries 用の新しい特別な構文がいくつかあります。辞書を期待どおりにロードするすべての手順を実行しましたが、単純なマッピングは機能しません。
<ResourceDictionary
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:v="using:ARGUSnet.RaspberryPiFramework.Designer.Views"
xmlns:vm="using:ARGUSnet.RaspberryPiFramework.Designer.ViewModels"
xmlns:local="using:ARGUSnet.RaspberryPiFramework.Designer.Dictionaries"
x:Class="ARGUSnet.RaspberryPiFramework.Designer.Dictionaries.ViewModelMappingDict">
<DataTemplate x:Key="dtTest" x:DataType="vm:TestViewModel">
<v:TestView />
</DataTemplate>
</ResourceDictionary>
ここでの問題は、キーを定義する必要があるという事実にあると思います。これについていくつかの説明を見つけましたが、なぜこれが今日行われなければならないのかわかりません。とにかく、ViewContainer で直接これを行うと、マッピングが機能します。
<Page.Resources>
<DataTemplate x:DataType="vm:TestViewModel">
<v:TestView />
</DataTemplate>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ContentControl
Content="{Binding CurrentContent}" />
</Grid>
問題は、明示的な Mapping-Dictionary なしで、または mvvmlight のような Freamworks で動作する、すべての例が直接動作していることです。これは学習目的のためであるため、Binding-Mechanics をフレームワークにブラックボックス化せずに、この作業を行うことをお勧めします。
可能ですか、これは ResourceDictionary の単なるバグですか? また、このスレッド、ビューをビューモデルまたはビューモデルの複数のデータテンプレートに関連付ける方法を見つけましたか? 、しかし、私の理解によれば、直接バインドできる一方で、ランタイムマッピングに関する質問がありました。