我有一个自定义的用户控件,它有一个公共属性,我希望能够在XAML中设置它。
测试控件.xaml
<UserControl x:Class="Scale.Controls.TestControl"
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"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
测试控制.xaml.cs
using System.Windows.Controls;
namespace MyProject.Controls
{
public partial class TestControl : UserControl
{
public string TestMe { get; set; }
public TestControl()
{
InitializeComponent();
}
}
}
然后,在我的MainWindow.xaml文件中,我尝试包含以下内容:
<controls:TestControl TestMe="asdf" />
但是,即使Visual Studio自动完成TestMe属性,我还是会看到带有弯曲下划线的内容,显示“成员“Test Me”无法识别或无法访问,”如下所示。
我可以发誓我以前在其他项目中做过类似的事情。我如何像这样通过XAML访问(即设置)公共属性?
8条答案
按热度按时间bmp9r5qi1#
可视化工作室2017
我也遇到了同样的问题。有一天它正在编译......然后就没有了。我没有使用DependencyProperty,这是不应该像上面那样需要的。这些属性出现在Intellisense中,但插入时给出了相同的消息。我清理、构建、重建、重新启动VS、重新启动等等。所有这些都无济于事。
最后一次尝试......我删除了所有有问题的属性,得到了一个干净的编译。然后我把它们放回去,编译了它。我真的没有预料到这一点。不知何故,VS已经得到了它的内裤在扭曲。
vhmi4jdf2#
如果你使用的是VS2017,试着删除你的解决方案中所有项目的bin和obj文件夹,清理解决方案并重新构建。
bn31dyow3#
您需要将属性声明为
Dependency Properties
5kgi1eie4#
将构建目标从AnyCPU更改为x86或x64。不确定AnyCPU不工作的原因。
s4chpxco5#
我知道这是晚了,但我刚刚遇到这个问题上VS 2020。
我尝试了上面列出的所有3个选项,没有一个工作,包括CPU构建。
我最终不得不右键单击每个项目,清理,并重建。然后它解决了这个问题...
真烦人,这仍然是一个问题。
8wtpewkr6#
在我的例子中,最初没有错误,在我修改我的类之后,在我的类中有一些错误,然后显示Xaml错误
member is not recognized
。在解决了我的类中的错误之后,我通过了构建项目,所有项目都被构建而没有错误,但是错误仍然显示在Error List Window
中。最后,我重新启动Visual Studio,错误消失了。628mspwn7#
我的VS2022遇到了这个问题,我只是删除了WindowsBase引用,它就起作用了。
fcg9iug38#
我将使用反射,而不是为控件设置多个依赖项属性。