2017-05-11 4 views
0

In MainWindow.xaml ich habe:Ansichtsmodell Lage in Unterordner (XAML-Namespace)

<Window x:Class="LayoutMVVM.MainWindow" 
     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" 
     mc:Ignorable="d" 
     ResizeMode="NoResize" 

     xmlns:local="clr-namespace:LayoutMVVM" 
     xmlns:veiwmodels="clr-namespace:LayoutMVVM.ViewModels"   
     xmlns:views="clr-namespace:LayoutMVVM.Views" 

     Title="Layout" Height="750" Width="650"> 

In Windows.Resources Mir Bindung Datacontext:

<Window.Resources> 
     <DataTemplate x:Name="SettingsTemp" DataType="{x:Type veiwmodels:SettingsModel}"> 
      <views:SettingsView DataContext="{Binding}" /> 
     </DataTemplate> 
    </Window.Resources> 

Aber als mein anderes Modell und Blick in Unterordner befindet sich wie folgt:

enter image description here

kann ich nicht tun:

<DataTemplate x:Name="OpenTemp" DataType="{x:Type ViewModels:Open.OpenModel}"> 
    <views:Open.OpenView DataContext="{Binding}" /> 
</DataTemplate> 

oder LayoutMVVM.ViewModels.Open.OpenModel

oder LayoutMVVM/Viewmodel/Open/OpenModel

Antwort

1

Sie neu in Header-Steuerelement hinzufügen sollen:

xmlns:veiwmodelsOpen="clr-namespace:LayoutMVVM.ViewModels.Open 

oder Sie kann den Namespace von OpenModel auf setzen LayoutMVVM.ViewModels (nichtLayoutMVVM.ViewModels.Open).

Es gibt keinen anderen Weg, denke ich.

+0

richtige Sicht Dinge und es funktioniert mit Ihrer ersten Antwort – 4est

+0

noch eins: LayoutMVVM.ViewModels -> in diesem Fall sollte es DataTemplate direkt zugewiesen werden? – 4est

+0

Nein, Sie deklarieren * veiwmodels * im Fenster xaml tag, so können Sie in DataTemplate schreiben * DataType = "{x: Geben Sie veiwmodels: OpenModel}" * (wenn der Namespace von OpenModel ist * LayoutMVVM.ViewModels *) – Digger