2010-08-25 92 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