Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C#WPF棱镜页面连接_C#_Wpf_Prism - Fatal编程技术网

C#WPF棱镜页面连接

C#WPF棱镜页面连接,c#,wpf,prism,C#,Wpf,Prism,我尝试使用WPF app.net framework和Prism framework将页面连接到主窗口 我错过了什么 App.xaml: <prism:PrismApplication x:Class="Aplicatie2._0.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="

我尝试使用WPF app.net framework和Prism framework将页面连接到主窗口

我错过了什么

App.xaml:

<prism:PrismApplication x:Class="Aplicatie2._0.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:prism="http://prismlibrary.com/"
             xmlns:local="clr-namespace:Aplicatie2._0">
        <Application.Resources>

        </Application.Resources>
</prism:PrismApplication>
查看->主页:

<Window x:Class="Aplicatie2._0.View.MainPage"
        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:VM="clr-namespace:Aplicatie2._0.ViewModel"
        xmlns:prism="http://prismlibrary.com/"
        xmlns:local="clr-namespace:Aplicatie2._0.View"
        prism:ViewModelLocator.AutoWireViewModel="True"
        
        mc:Ignorable="d"
        Title="{Binding Title}" Height="450" Width="800">
        <Window.DataContext>
                <VM:MainPageViewModel/>
        </Window.DataContext>
        <Grid>
                <ContentControl prism:RegionManager.RegionName="MainContent"/>
                <Button Content="Button" CommandParameter="FirstQ" HorizontalAlignment="Left" Margin="151,54,0,0" VerticalAlignment="Top" Width="75" Command="{Binding PressButton}"/>

        </Grid>
</Window>
窗户是开着的

如果我没有:

 <Window.DataContext>
                <VM:MainPageViewModel/>
        </Window.DataContext>
我错过了什么?

你要么

  • 将名称空间与默认约定对齐(
    MyApp.Views
    用于视图,
    MyApp.ViewModels
    用于视图模型)
  • 同时注册视图和视图模型
  • 创建自己的约定以链接视图和视图模型的类型
  • 这样,
    ViewModelLocator
    就可以完成他的工作

    从您发布的代码中,
    aplicie2.\u 0.View.MainPage
    应该是
    aplicie2.\u 0.Views.MainPage
    aplicie2.\u 0.ViewModel.MainPageViewModel
    应该是
    aplicie2.\u 0.ViewModels.MainPageViewModel

    <Window x:Class="Aplicatie2._0.View.MainPage"
            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:VM="clr-namespace:Aplicatie2._0.ViewModel"
            xmlns:prism="http://prismlibrary.com/"
            xmlns:local="clr-namespace:Aplicatie2._0.View"
            prism:ViewModelLocator.AutoWireViewModel="True"
            
            mc:Ignorable="d"
            Title="{Binding Title}" Height="450" Width="800">
            <Window.DataContext>
                    <VM:MainPageViewModel/>
            </Window.DataContext>
            <Grid>
                    <ContentControl prism:RegionManager.RegionName="MainContent"/>
                    <Button Content="Button" CommandParameter="FirstQ" HorizontalAlignment="Left" Margin="151,54,0,0" VerticalAlignment="Top" Width="75" Command="{Binding PressButton}"/>
    
            </Grid>
    </Window>
    
    <Page x:Class="Aplicatie2._0.View.FirstQ"
          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:local="clr-namespace:Aplicatie2._0.View"
          Background="White"
          mc:Ignorable="d" 
          d:DesignHeight="450" d:DesignWidth="800"
          Title="FirstQ">
    
        <Grid>
                    <TextBlock HorizontalAlignment="Left" Margin="249,108,0,0" TextWrapping="Wrap" Text="TextBlock" VerticalAlignment="Top"/>
    
            </Grid>
    </Page>
    
    public MainPageViewModel() 
    
     <Window.DataContext>
                    <VM:MainPageViewModel/>
            </Window.DataContext>
    
    prism:ViewModelLocator.AutoWireViewModel="True"...