C# 棱镜引起的错误:“1”;System.Windows.Markup.XamlParseException“;

C# 棱镜引起的错误:“1”;System.Windows.Markup.XamlParseException“;,c#,visual-studio,mvvm,prism,C#,Visual Studio,Mvvm,Prism,我有四个项目的解决方案,如下所示: BridgeConcrete.BL 布里奇达尔 BridgeConcrete.ViewModel BridgeConcrete.WPF 我正在使用: Microsoft.Practices.Prism.Mvvm版本1.1.1.0 Microsoft.Practices.Prism.Mvvm.Desktop版本1.1.1.0 Microsoft.Practices.Prism.SharedInterfaces版本1.1.1.0 BridgeConcrete.

我有四个项目的解决方案,如下所示:

  • BridgeConcrete.BL
  • 布里奇达尔
  • BridgeConcrete.ViewModel
  • BridgeConcrete.WPF
  • 我正在使用:

    • Microsoft.Practices.Prism.Mvvm版本1.1.1.0
    • Microsoft.Practices.Prism.Mvvm.Desktop版本1.1.1.0
    • Microsoft.Practices.Prism.SharedInterfaces版本1.1.1.0
    BridgeConcrete.BL还没有任何内容。

    BridgeConcrete.DAL有:

    public class Project
    {
        public Project()
        {
            AddedBy = 1;
            AddedDate = System.DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    
        public DateTime AddedDate { get; set; }
        public int AddedBy { get; set; }
    
        public DateTime? ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
    
    
        // Calculated Fields
        public int BridgeCount { get; private set; }
    }
    
    public class ProjectViewModel : BindableBase
    {
        private IEnumerable<Project> _projects;
        public IEnumerable<Project> Projects
        {
            get { return _projects; }
            set { SetProperty(ref _projects, value); }
        }
    
        private Project _selectedRecord;
        public Project SelectedRecord
        {
            get { return _selectedRecord; }
            set { SetProperty(ref _selectedRecord, value); }
        }
    
        public ProjectViewModel()
        {
            SelectedRecord = new Project() { Id = 1, Name = "Test 1" };
        }
    }
    
    BridgeConcrete.ViewModel有:

    public class Project
    {
        public Project()
        {
            AddedBy = 1;
            AddedDate = System.DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    
        public DateTime AddedDate { get; set; }
        public int AddedBy { get; set; }
    
        public DateTime? ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
    
    
        // Calculated Fields
        public int BridgeCount { get; private set; }
    }
    
    public class ProjectViewModel : BindableBase
    {
        private IEnumerable<Project> _projects;
        public IEnumerable<Project> Projects
        {
            get { return _projects; }
            set { SetProperty(ref _projects, value); }
        }
    
        private Project _selectedRecord;
        public Project SelectedRecord
        {
            get { return _selectedRecord; }
            set { SetProperty(ref _selectedRecord, value); }
        }
    
        public ProjectViewModel()
        {
            SelectedRecord = new Project() { Id = 1, Name = "Test 1" };
        }
    }
    
    公共类项目视图模型:BindableBase
    {
    私人IEnumerable_项目;
    公共工程
    {
    获取{return\u projects;}
    set{SetProperty(ref_projects,value);}
    }
    私人项目(u selectedRecord);;
    公共项目选择记录
    {
    获取{return\u selectedRecord;}
    集合{SetProperty(ref _selectedRecord,value);}
    }
    公共项目视图模型()
    {
    SelectedRecord=newproject(){Id=1,Name=“Test 1”};
    }
    }
    
    在BridgeConcrete.WPF中,我有:

    public class Project
    {
        public Project()
        {
            AddedBy = 1;
            AddedDate = System.DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    
        public DateTime AddedDate { get; set; }
        public int AddedBy { get; set; }
    
        public DateTime? ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
    
    
        // Calculated Fields
        public int BridgeCount { get; private set; }
    }
    
    public class ProjectViewModel : BindableBase
    {
        private IEnumerable<Project> _projects;
        public IEnumerable<Project> Projects
        {
            get { return _projects; }
            set { SetProperty(ref _projects, value); }
        }
    
        private Project _selectedRecord;
        public Project SelectedRecord
        {
            get { return _selectedRecord; }
            set { SetProperty(ref _selectedRecord, value); }
        }
    
        public ProjectViewModel()
        {
            SelectedRecord = new Project() { Id = 1, Name = "Test 1" };
        }
    }
    
    一,。UserControl:ProjectView.xaml

    <UserControl
        x:Class="BridgeConcrete.WPF.ProjectView"
        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:vm="clr-namespace:BridgeConcrete.ViewModel;assembly=BridgeConcrete.ViewModel"
        mc:Ignorable="d"
        d:DesignWidth="299.257" Height="140.059">
    
        <UserControl.DataContext>
            <vm:ProjectViewModel/>
        </UserControl.DataContext>
    
        <Grid >
            <Label Content="Project ID:" HorizontalAlignment="Left" Margin="10,22,0,0" VerticalAlignment="Top"/>
            <TextBox HorizontalAlignment="Left" Height="23" Margin="98,25,0,0" TextWrapping="Wrap" VerticalAlignment="Top" Width="78" IsEnabled="False"                
                        Text="{Binding SelectedRecord.Id }"/>
    
            <Label Content="Project Name:" HorizontalAlignment="Left" Margin="10,48,0,0" VerticalAlignment="Top"/>
            <TextBox HorizontalAlignment="Left" Height="23" Margin="99,53,0,0" TextWrapping="Wrap" Text="{Binding SelectedRecord.Name}" VerticalAlignment="Top" Width="145" />
        </Grid>
    
    </UserControl>
    
    
    
  • MainWindow.xaml:
  • 我将用户控件称为:

    <local:ProjectView Margin="0,0,0.4,5.4"/>
    
    
    
    错误是:

    public class Project
    {
        public Project()
        {
            AddedBy = 1;
            AddedDate = System.DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    
        public DateTime AddedDate { get; set; }
        public int AddedBy { get; set; }
    
        public DateTime? ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
    
    
        // Calculated Fields
        public int BridgeCount { get; private set; }
    }
    
    public class ProjectViewModel : BindableBase
    {
        private IEnumerable<Project> _projects;
        public IEnumerable<Project> Projects
        {
            get { return _projects; }
            set { SetProperty(ref _projects, value); }
        }
    
        private Project _selectedRecord;
        public Project SelectedRecord
        {
            get { return _selectedRecord; }
            set { SetProperty(ref _selectedRecord, value); }
        }
    
        public ProjectViewModel()
        {
            SelectedRecord = new Project() { Id = 1, Name = "Test 1" };
        }
    }
    
    System.Windows.Markup.XamlParseException:“未实现该方法或操作。”

    内部异常

    NotImplementedException:方法或操作未实现

    我做了很多搜索,但除了调试之外,我找不到解决方案。所以,我这样做了,我发现问题出在棱镜上

    当我删除Prism的继承时,它工作得很好。

    问题:

    public class Project
    {
        public Project()
        {
            AddedBy = 1;
            AddedDate = System.DateTime.Now;
        }
        public int Id { get; set; }
        public string Name { get; set; }
    
        public DateTime AddedDate { get; set; }
        public int AddedBy { get; set; }
    
        public DateTime? ModifiedDate { get; set; }
        public int? ModifiedBy { get; set; }
    
    
        // Calculated Fields
        public int BridgeCount { get; private set; }
    }
    
    public class ProjectViewModel : BindableBase
    {
        private IEnumerable<Project> _projects;
        public IEnumerable<Project> Projects
        {
            get { return _projects; }
            set { SetProperty(ref _projects, value); }
        }
    
        private Project _selectedRecord;
        public Project SelectedRecord
        {
            get { return _selectedRecord; }
            set { SetProperty(ref _selectedRecord, value); }
        }
    
        public ProjectViewModel()
        {
            SelectedRecord = new Project() { Id = 1, Name = "Test 1" };
        }
    }
    

    这里的问题是什么,如何解决这个问题,请

    您可能正在调用一个虚拟函数,该函数是要您重写的。该方法将抛出
    NotImplementedException
    (通常开发人员会在他们希望人们实现的虚拟方法中抛出该异常,而不是使其
    抽象化


    如果您可以附加堆栈跟踪,它可能有助于指向正确的方向。

    您可能要尝试的第一件事是升级到的最新版本。6.3现在可用。我使用的是最新版本,您所说的是旧版本。最新版本的Prism中不再使用Microsoft.Practices.Prism命名空间。您上面列出的组件给我的印象是您使用的是旧版本。