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.
- 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
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>
<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命名空间。您上面列出的组件给我的印象是您使用的是旧版本。