.net xaml中的值绑定语法是什么?
我正在学习WPF中的绑定。不过,我在调试xaml中的解析错误时遇到了很多麻烦。谁能告诉我这件小东西怎么了.net xaml中的值绑定语法是什么?,.net,wpf,silverlight,xaml,binding,.net,Wpf,Silverlight,Xaml,Binding,我正在学习WPF中的绑定。不过,我在调试xaml中的解析错误时遇到了很多麻烦。谁能告诉我这件小东西怎么了 <Border Name="TrackBackground" Margin="0" CornerRadius="2" Grid.Row="1" Grid.Column="1" Background="BlanchedAlmond" BorderThickness="1" Height="{
<Border Name="TrackBackground"
Margin="0"
CornerRadius="2"
Grid.Row="1"
Grid.Column="1"
Background="BlanchedAlmond"
BorderThickness="1"
Height="{TemplateBinding Height}">
<Canvas Name="PART_Track" Background="DarkSalmon" Grid.Row="1" Grid.Column="1">
<Thumb Name="ThumbKnob" Height="{Binding ElementName=Part_Track, Path=Height, Mode=OneWay}" />
</Canvas>
</Border>
是数据绑定中断了。我尝试运行此操作时,ThumbKnob.Height出现了InvalidateTributeValue
异常。我知道我肯定错过了一些基本的东西。塔克尔斯,请填写我的资料,我将无限感激
更改ElementName没有帮助。我一定还有别的东西没拿到 我应该提到的是,我正在Silverlight中进行测试。我从Internet Explorer中得到的确切信息是:
XamlParseException:属性高度的属性值无效。
这整件事都在ControlTemplate中。我做一个滑动控制只是为了教自己一些概念。首先,它是一个外壳的问题 更改将修复绑定错误 但我不认为这是你想要做的 您可以使用网格而不是画布,拇指将自动调整大小。画布并没有真正的高度,因为它并不真正关心它的孩子的高度
希望这有帮助…模板中的边框是btw吗
因为如果边框不在模板(ControlTemplate或DataTemplate)中,就不需要TemplateBinding,所以我通常要调试数据绑定,就是添加一个转换器,在VS.NET中设置断点 所以绑定应该是这样的:
{Binding ElementName=PART_Track, Path=Height, Mode=OneWay, Converter={StaticResources DebugConverter}}
然后转换器可以是IValueConverter的空实现,在Convert方法中设置一个断点,然后查看高度设置为
别忘了将转换器添加到资源中
也许值是NaN?嗯,在这一点上,WPF和Silverlight之间可能存在很大的差异 即使在WPF窗口中编译和运行此示例,我似乎也没有遇到任何问题:
<Slider Width="400" Height="20">
<Slider.Template>
<ControlTemplate>
<Border Name="TrackBackground"
Margin="0"
CornerRadius="2"
Grid.Row="1"
Grid.Column="1"
Background="BlanchedAlmond"
BorderThickness="1">
<Canvas x:Name="PART_Track" Background="DarkSalmon" Grid.Row="1" Grid.Column="1">
<Thumb Name="ThumbKnob" Height="{Binding ElementName=PART_Track, Path=Height, Mode=OneWay}" />
</Canvas>
</Border>
</ControlTemplate>
</Slider.Template>
</Slider>
也许Silverlight在Thumb类中的属性更少
Silverlight不支持绑定上的ElementName属性 您会注意到,如果您进入代码隐藏或在类资源管理器中检查绑定对象,它没有名为ElementName的属性。好的,下面是交易: 在silverlight中,不能以声明方式将值从一个UI元素绑定到另一个UI元素。我在这里尝试的唯一方法就是使用C代码
昨天我有一个关于这个的参考资料,但现在我想你必须相信我的话:)Silverlight 3现在包括ElementName绑定…只需注意:它在Silverlight 4中。(我想是3.5分)
{Binding ElementName=PART_Track, Path=Height, Mode=OneWay, Converter={StaticResources DebugConverter}}
<Slider Width="400" Height="20">
<Slider.Template>
<ControlTemplate>
<Border Name="TrackBackground"
Margin="0"
CornerRadius="2"
Grid.Row="1"
Grid.Column="1"
Background="BlanchedAlmond"
BorderThickness="1">
<Canvas x:Name="PART_Track" Background="DarkSalmon" Grid.Row="1" Grid.Column="1">
<Thumb Name="ThumbKnob" Height="{Binding ElementName=PART_Track, Path=Height, Mode=OneWay}" />
</Canvas>
</Border>
</ControlTemplate>
</Slider.Template>
</Slider>