C# UWP XAML用户控件静态属性与实例属性

C# UWP XAML用户控件静态属性与实例属性,c#,xaml,uwp,dependency-properties,C#,Xaml,Uwp,Dependency Properties,因此,我创建了一个用户控件,并在它的TestProperty上创建了一个dependency属性 我希望有2个此用户控件的实例,并为每个实例将TestProperty设置为不同的值 <widgets:mycontrol Test="val1"></widgets:WTComboBox> <widgets:mycontrol Test="val2"></widgets:WTComboBox> 在控件中,显然我不能在每个实例中为它指定不同的值,但是当

因此,我创建了一个用户控件,并在它的TestProperty上创建了一个dependency属性

我希望有2个此用户控件的实例,并为每个实例将TestProperty设置为不同的值

<widgets:mycontrol Test="val1"></widgets:WTComboBox>
<widgets:mycontrol Test="val2"></widgets:WTComboBox>
在控件中,显然我不能在每个实例中为它指定不同的值,但是当我创建testproperty作为普通实例属性时

public DependencyProperty TestProperty;

public mycontrol()
{
    TestProperty = DependencyProperty.Register("Test", typeof(string), typeof(mycontrol), null);
}
在控件上,则设计器无法识别该属性的存在并创建错误,但在运行时该控件工作正常,控件的每个实例都具有正确的测试属性值

所以问题是如何让实例依赖性属性在设计器中工作

谢谢

DependencyProperty已注册到类型,而不是实例。您正确写入此代码以注册它

然后你说,

很明显,我不能在每个实例中对它有不同的值

事实并非如此

每个实例可以有不同的值,event虽然DependencyProperty是以这种方式注册的,但它不是一个静态属性,对于该类型的所有实例只能有一个值,就像您可能会排除常规CLR属性一样。要了解依赖项属性和CLR属性之间的差异,请参阅

然后定义一个非静态依赖属性,并询问如何使设计器识别该属性,您不应该这样做。对于为什么不应该编写非静态依赖性属性(即使它看起来可以工作),已经有很多原因了

public DependencyProperty TestProperty;

public mycontrol()
{
    TestProperty = DependencyProperty.Register("Test", typeof(string), typeof(mycontrol), null);
}
public static readonly DependencyProperty TestProperty=
    DependencyProperty.Register("Test", typeof(string), typeof(mycontrol), null);