在Prism模块内部时,AutowireViewModel不起作用

时间:2016-05-30 10:41:12

标签: c# wpf prism

我确信我在这里做错了,但是当我在模块中定义的视图中设置AutowireViewModel附加属性时,它无法自动连接视图模型。我没有看到实例化的视图模型。我的示例项目位于github(见下文)

<UserControl x:Class="MainModule.ToolbarWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mvvm="clr-namespace:Microsoft.Practices.Prism.Mvvm;assembly=Microsoft.Practices.Prism.Mvvm.Desktop"
         mvvm:ViewModelLocator.AutoWireViewModel="True"
         mc:Ignorable="d" 
         d:DesignHeight="300" d:DesignWidth="300">
<StackPanel>
    <Label>Test</Label>
    <Label Content="{Binding Name}"></Label>
</StackPanel>

https://github.com/rohits79/PrismAutoWire/tree/master/Prism%20App/MainModule

请忽略https://github.com/rohits79/PrismAutoWire/blob/master/Prism%20App/Prism%20App/Bootstrapper.cs#L34

处的硬编码路径

1 个答案:

答案 0 :(得分:5)

你的命名空间错了。

namespace MainModule

[...]

public partial class ToolbarWindow

如果您不想更改默认解决方案,则视图必须位于Whatever.ViewsWhatever.ViewModels中的视图模型。

所以将ToolbarWindow移到MainModule.Views,你就可以了。

BTW:Prism 6不再需要IView