如何在标签上设置目标属性?

时间:2010-08-25 06:54:37

标签: wpf

以下代码:

    <TextBlock Name="foo"></TextBlock>
    <Label Target="foo">_Delta pressure</Label>

生成以下设计时错误:

错误1无法将值'foo'分配给属性'Target'。属性'UIElement'的属性'Target'不能指定为字符串。 C:\ Programming \ WpfCustomPlot \ SPT.Olga.Plot.Custom \ PumpCurves \ View \ RatedValuesView.xaml 65 45 SPT.Olga.Plot.Custom

以下运行时错误:

'UIElement'类型没有公共TypeConverter类。 65号线位置错误45。

我做错了什么?

2 个答案:

答案 0 :(得分:32)

Target属性接受元素本身,而不是字符串,因此您需要:

<TextBlock Name="foo"></TextBlock>
<Label Target="{Binding ElementName=foo}">_Delta pressure</Label>

答案 1 :(得分:5)

似乎在.NET Framework 4.0版中,此属性已更改,因此只能将元素的名称作为字符串。这是通过使用Label.Target使用TypeConverterAttribute修饰NameReferenceConverter属性来处理从StringUIElement的转换来完成的。

有关详细信息,请查看以下文档:

https://msdn.microsoft.com/en-us/library/system.windows.controls.label.target(v=vs.100).aspx

https://msdn.microsoft.com/en-us/library/system.windows.markup.namereferenceconverter(v=vs.100).aspx

PS:请注意,通常认为使用x:Name属性在XAML中指定元素名称而不是Name属性是更好的做法。