进入MainWindow.xaml我有:

<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">

进入Windows.Resources我绑定(bind)了dataContext:
 <Window.Resources>
        <DataTemplate x:Name="SettingsTemp" DataType="{x:Type veiwmodels:SettingsModel}">
            <views:SettingsView DataContext="{Binding}" />
        </DataTemplate>
  </Window.Resources>

但是,当我的其他模型和 View 位于以下子文件夹中时:

wpf - ViewModel位置放入子文件夹(XAML, namespace )-LMLPHP

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

或LayoutMVVM.ViewModels.Open.OpenModel

或LayoutMVVM/ViewModels/Open/OpenModel

最佳答案

您应该在控件的标题中添加一个新的:

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

或者,您可以将OpenModel的命名空间设置为LayoutMVVM.ViewModels(而不是 LayoutMVVM.ViewModels.Open)。

我认为没有其他办法。

关于wpf - ViewModel位置放入子文件夹(XAML, namespace ),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43909156/

10-11 18:03