以下代码:
<TextBlock Name="foo"></TextBlock>
<Label Target="foo">_Delta pressure</Label>
Run Code Online (Sandbox Code Playgroud)
生成以下设计时错误:
错误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.
我究竟做错了什么?
Ken*_*art 32
该Target属性采用元素本身,而不是字符串,因此您需要:
<TextBlock Name="foo"></TextBlock>
<Label Target="{Binding ElementName=foo}">_Delta pressure</Label>
Run Code Online (Sandbox Code Playgroud)
似乎在.NET Framework 4.0版中,此属性已更改,因此它只能将元素的名称作为字符串.这是通过使用a 来处理转换来完成Label.Target属性来完成的.TypeConverterAttributeNameReferenceConverterStringUIElement
有关详细信息,请查看以下文档:
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属性是更好的做法.