2010-08-25 50 views
15

以下代码:如何在标签上设置目标属性?

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

生成以下设计时错误:

错误1值“富”不能被分配给属性“目标”。 'UIElement'类型的属性'Target'不能被指定为字符串。 C:\程序\ WpfCustomPlot \ SPT.Olga.Plot.Custom \ PumpCurves \查看\ RatedValuesView.xaml 65 45 SPT.Olga.Plot.Custom

与以下运行时错误:

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

我在做什么错?

回答

29

Target属性采用元素本身,而不是字符串,所以要:

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

看来,在.NET Framework 4.0版,这个属性被更改,以便它能够只需将该元素的名称作为字符串。这是通过用TypeConverterAttribute使用NameReferenceConverter装饰Label.Target财产来完成的,以处理从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属性。

+0

似乎可行,但在XAML编辑器中给出警告 – 2017-06-27 14:46:10

+0

@RomanoZumbé您正在使用哪种XAML编辑器? – CptRobby 2017-06-27 19:20:56

+0

Visual Studio 2017 – 2017-06-28 05:58:52

相关问题