在本项目中,代码编译执行正常;但是,我需要帮助解决两个问题:
VS2012 WPF 设计器不适用于此 XAML 文件。它显示消息设计视图对于 x64 和 ARM 目标平台不可用。
我收到以下消息The name "EnumConverter" doesn't exist in the namespace "clr-namespace:VideoDatabase.Enums"。同样,这不会干扰编译或执行项目。
这是 XAML:
<Window x:Class="VideoDatabase.Views.SortingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:VideoDatabase.Enums"
Title="Sort and Filter" SizeToContent="WidthAndHeight" ResizeMode="NoResize"
Background="LightGray">
<Window.InputBindings>
<KeyBinding Gesture="Escape" Command="{Binding CloseWindowCommand}"/>
</Window.InputBindings>
<Window.Resources>
<!-- Next line generates Intellisene error; however, the code compiles and executes -->
<local:EnumConverter x:Key="enumConverter"/>
</Window.Resources>
这EnumConverter
是 VideoDatabase.Enums 命名空间中的公共类,位于当前程序集中。这是该类的代码片段:
namespace VideoDatabase.Enums
{
public class EnumConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
if (Enum.IsDefined(value.GetType(), value) == false)
return DependencyProperty.UnsetValue;
object parameterValue = Enum.Parse(value.GetType(), parameterString);
return parameterValue.Equals(value);
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
string parameterString = parameter as string;
if (parameterString == null)
return DependencyProperty.UnsetValue;
return Enum.Parse(targetType, parameterString);
}
}
}
到目前为止,我已经检查了以下内容:
- 确认目标框架是 .NET Framework 4.5
- 确认
EnumConverter
课程在主程序集中 - 如果我注释掉
<local:EnumConverter x:Key="enumConverter"/>
设计师的作品。