如何使用来自另一个项目的枚举将单选按钮组绑定到枚举 属性?
How can I bind a radio button group to an enum property using an enum from another project?
所以我的解决方案中有 2 个项目。一个 class 库和一个 WPF 项目。
class 库“TemplateGeneratorLibrary”包含一个文件“Enums.cs”,我在其中定义我的枚举。
namespace TemplateGeneratorLibrary.Utilities
{
public enum Genders
{
m,
f
}
}
我在我的 UI 项目中添加了对我的视图文件的以下引用。我仔细检查了 class 库的程序集名称确实是“TemplateGeneratorLibrary”并且与项目名称没有区别。
<UserControl x:Class="TemplateGeneratorUI.Views.MedicalExaminationView"
xmlns:utilities="clr-namespace:TemplateGeneratorLibrary.Utilities;assembly=TemplateGeneratorLibary">
现在,我尝试使用 class 库中的枚举将单选按钮组绑定到视图模型中的 属性。
<RadioButton x:Name="PatientGenderMRadio"
IsChecked="{Binding Path=Gender, Converter={StaticResource enumConverter}, ConverterParameter={x:Static utilities:Genders.m}}"
我收到错误“找不到类型 'Genders'。请注意,类型名称区分大小写。”
当我将枚举文件与视图放在同一个项目中时,一切正常。我怎样才能使用我的 class 库中的枚举让它工作呢?
如果您使用 .NET Standard
,class 库也必须基于 .NET Standard。
而如果 .NET Framework
或 .NET Core
class 库必须遵守它。
Class library namespace does not exist in WPF app despite project reference
When I put the enum file in the same project as the view everything works fine.
实际上可以从另一个项目中引入特定文件,而不必引入对该项目的引用或包含 dll。
诀窍是将所需的文件作为 link 包含到项目中。方法如下
- 在主项目中右键单击 select
Add
然后 Existing Item...
或 shift alt A.
- 浏览到在其他项目中找到的文件的位置和 select 文件。
- 一旦文件被 selected,然后在
Add
按钮上使用下拉箭头中的 select。
- Select
Add as link
将 common 文件作为 link 添加到项目中。
这将提供对文件的访问权限就好像文件实际上在项目中,但文件实际位于其他地方。
这在必须跨越 CLR 边界的 Silverlight 中被广泛使用,但是模型和枚举之类的东西可以在两个项目中使用,而不必为文本类型副本引入另一个 CLR dll。
所以我的解决方案中有 2 个项目。一个 class 库和一个 WPF 项目。 class 库“TemplateGeneratorLibrary”包含一个文件“Enums.cs”,我在其中定义我的枚举。
namespace TemplateGeneratorLibrary.Utilities
{
public enum Genders
{
m,
f
}
}
我在我的 UI 项目中添加了对我的视图文件的以下引用。我仔细检查了 class 库的程序集名称确实是“TemplateGeneratorLibrary”并且与项目名称没有区别。
<UserControl x:Class="TemplateGeneratorUI.Views.MedicalExaminationView"
xmlns:utilities="clr-namespace:TemplateGeneratorLibrary.Utilities;assembly=TemplateGeneratorLibary">
现在,我尝试使用 class 库中的枚举将单选按钮组绑定到视图模型中的 属性。
<RadioButton x:Name="PatientGenderMRadio"
IsChecked="{Binding Path=Gender, Converter={StaticResource enumConverter}, ConverterParameter={x:Static utilities:Genders.m}}"
我收到错误“找不到类型 'Genders'。请注意,类型名称区分大小写。”
当我将枚举文件与视图放在同一个项目中时,一切正常。我怎样才能使用我的 class 库中的枚举让它工作呢?
如果您使用 .NET Standard
,class 库也必须基于 .NET Standard。
而如果 .NET Framework
或 .NET Core
class 库必须遵守它。
Class library namespace does not exist in WPF app despite project reference
When I put the enum file in the same project as the view everything works fine.
实际上可以从另一个项目中引入特定文件,而不必引入对该项目的引用或包含 dll。
诀窍是将所需的文件作为 link 包含到项目中。方法如下
- 在主项目中右键单击 select
Add
然后Existing Item...
或 shift alt A. - 浏览到在其他项目中找到的文件的位置和 select 文件。
- 一旦文件被 selected,然后在
Add
按钮上使用下拉箭头中的 select。 - Select
Add as link
将 common 文件作为 link 添加到项目中。
这将提供对文件的访问权限就好像文件实际上在项目中,但文件实际位于其他地方。
这在必须跨越 CLR 边界的 Silverlight 中被广泛使用,但是模型和枚举之类的东西可以在两个项目中使用,而不必为文本类型副本引入另一个 CLR dll。