2

我正在引用另一个项目的命名空间(所有模型所在的类库)。

如相关问题中所述,他们通过将程序集也添加到 .xaml 文件来解决问题。但这对我不起作用。这就是我发帖的原因。

我有2个项目。

  1. WPF 项目本身。
  2. 类库(这有所有的视图模型)

WPF项目有对类库的引用。(应该在WPF项目的bin中创建这个类库的dll文件)

我想引用类库中的模型。所以,我做了如下。

    <UserControl x:Class="WPFApplication.Views.SalesScreen"
             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:productListViewModel="clr-namespace: WPFApplication.CommonInterface.Shared.ViewModels; assembly=WPFApplication.CommonInterface"
             mc:Ignorable="d" 
             d:DesignHeight="820" d:DesignWidth="1280" Loaded="PlaneLoaded">....
....
<productListViewModel:ProductListVM x:Key="ProductsListVMC"/>...

但是问题仍然存在,这个ProductListVM类(模型)存在于WPFApplication.CommonInterface.Shared.ViewModels名称空间中,它也存在public。:)

错误说,

The name "ProductListVM" does not exist in the namespace "clr-namespace:WPFApplication.CommonInterface.Shared.ViewModels; assembly=WPFApplication.CommonInterface".

我还尝试单独构建类库并将dll文件手动添加到WPF项目中bin/debug并构建它。但问题仍然存在。

错误列表中还有另一个错误。

Unknown build error, ''clr-namespace:WPFApplication.CommonInterface.Shared.ViewModels; assembly=POS.WPFApplication.CommonInterface' mapping URI is not valid. Line 7 Position 14.'  D:\Dev\WPFApplication\Views\POSViews\SalesScreen.xaml

Error   1   The URI "clr-namespace:WPFApplication.CommonInterface.Shared.ViewModels; assembly=WPFApplication.CommonInterface" is not a valid namespace identifier.  D:\Dev\WPFApplication\Views\POSViews\SalesScreen.xaml

由于我从类模型本身复制了命名空间,因此不会出现拼写错误(99%),

你能帮我解决这个问题吗?

提前致谢。

4

1 回答 1

3

当您想在 WPF 项目的 XAML 文件之一中从另一个项目中引用时,请注意以下事项。

在我的问题中,当我删除它们之间的空格时,如下所示[This is the space]

xmlns:productListViewModel="clr-namespace: WPFApplication.CommonInterface.Shared.ViewModels;[This is the space]ssembly=WPFApplication.CommonInterface"

它奏效了:)

PS:我在VS2012工作

我在这上面浪费了很多时间。:(

于 2013-01-11T18:40:57.990 回答