C# wpfa窗口/用户控件资源的代码在哪里?
我试图学习教程,但我不清楚C# wpfa窗口/用户控件资源的代码在哪里?,c#,wpf,xaml,radio-button,C#,Wpf,Xaml,Radio Button,我试图学习教程,但我不清楚EnumMatchToBooleanConverter类的代码应该放在哪里。我假设它会放在代码隐藏文件(即view.xaml.cs)中,但是当我尝试在xaml中声明资源时,类型EnumMatchToBooleanConverter没有找到。。EnumMatchToBooleanConverter在本例中是它自己的类。您应该能够在现有的代码中声明它,但我会将它粘贴到它自己的文件中以确保。 VisualStudio在查找资源时可能会出错,因此您应该重新生成项目,以防仍然显示
EnumMatchToBooleanConverter
类的代码应该放在哪里。我假设它会放在代码隐藏文件(即view.xaml.cs)中,但是当我尝试在xaml中声明资源时,类型EnumMatchToBooleanConverter没有找到。
。EnumMatchToBooleanConverter在本例中是它自己的类。您应该能够在现有的代码中声明它,但我会将它粘贴到它自己的文件中以确保。
VisualStudio在查找资源时可能会出错,因此您应该重新生成项目,以防仍然显示错误 转换器(与所有其他类一样)属于它们自己的文件
然后,您只需要在XAML中包含名称空间:
xmlns:local="clr-namespace:MyNamespace"
此外,请尝试重建/运行应用程序,因为XAML“intellisense”通常在生成之前不会更新名称空间中的内容。通常,小型WPF项目应该具有以下近似文件夹结构:
- 项目名称
- 转换器
- 数据访问
- 数据类型
- 图像
- 视图模型
- 观点
转换器
类的文件夹。在开发WPF一段时间后,您会发现Converter
类集合的大小将增加。每个文件夹都包含我们映射到相关名称空间的类。在转换器
类的情况下,通常如下所示:
namespace ProjectName.Converters
{
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolToBrushConverter : IValueConverter
{
...
}
}
<Converters:BoolToBrushConverter x:Key="BoolToBrushConverter" />
对于数据类型
类,您可以使用如下内容:
namespace ProjectName.DataTypes
{
public class SomeDataType
{
...
}
}
正如@LordTakkera正确提到的,然后需要通过定义XAML名称空间在XAML中引用这些类,如下所示:
xmlns:Converters="clr-namespace:ProjectName.Converters"
然后您可以在参考资料
部分中定义转换器
,如下所示:
namespace ProjectName.Converters
{
[ValueConversion(typeof(bool), typeof(Brush))]
public class BoolToBrushConverter : IValueConverter
{
...
}
}
<Converters:BoolToBrushConverter x:Key="BoolToBrushConverter" />
有关更多信息,请参阅MSDN页面的数据转换部分。MSDN上的页面是另一个有用的资源