我们需要使用数据绑定在运行时分配Name属性。我们定义了控件模板,WPF
不允许从Data Bind对象绑定名称。
如果我这样做,我会收到错误,
错误3 MarkupExtensions不是 允许Uid或Name属性 值,所以'{Binding Name}'不是 有效。第15行位置 36. C:\ Users \ gsubramani \ Workspace \ ProLinkIII_Experiment \ BasicFrame \ Resources \ TreeTemplate.xaml 15 36 BasicFrame
要解决此问题,是否可以通过数据绑定定义实习生设置控件的Name属性的自定义属性?
我不知道如何处理DependencyProperty
中的WPF
,以便我可以定义一个自定义属性,实习生设置控件的Name属性? (我对WPF世界很新。)
答案 0 :(得分:2)
如果你需要这个用于UI自动化,我建议使用这里描述的解决方案: http://www.jonathanantoine.com/2011/11/03/coded-ui-tests-automationid-or-how-to-find-the-chose-one-control/
您可以在WPF中使用AutomationProperties.AutomationId和绑定,并且可以在UI自动化客户端中将此值用作automationid。
答案 1 :(得分:1)
您需要根据此处的文档定义附加的依赖项:
http://msdn.microsoft.com/en-us/library/cc903943%28VS.95%29.aspx
然后提供在此属性更改时调用的方法。您可以通过向propertyMetdata添加另一个参数来指明静态方法:
private static void OnMyNamePropertyChanged(DependencyObject d,
DependencyPropertyChangedEventArgs e)
{
// d is the object which the attached property has been set on
}
在此处理程序中,d是属性附加到的对象,e.NewValue将包含名称。
但是,我认为你想要绑定元素的名称有点奇怪。你能否分享一下你为什么要这样做?
问候,科林E.