为什么Path = SelectedItem.Content适用于WPF中的ComboBox但不适用于Silverlight?

时间:2009-06-11 01:14:37

标签: wpf silverlight combobox selecteditem

以下代码在 WPF 中运行良好。

Silverlight 中,它为我提供了错误**属性Text的无效属性值{Binding ElementName = WhichNumber,Path = SelectedItem.Content}。 **

如何在 Silverlight 中使用它?

    <ComboBox x:Name="WhichNumber" Width="100" HorizontalAlignment="Left" Margin="10" SelectedIndex="0">
        <ComboBoxItem Content="One"/>
        <ComboBoxItem Content="Two"/>
        <ComboBoxItem Content="Three"/>
    </ComboBox>

    <TextBlock Text="{Binding ElementName=WhichNumber, Path=SelectedItem.Content}"/>

2 个答案:

答案 0 :(得分:2)

Silverlight不支持相对绑定(将一个元素的属性绑定到另一个元素的属性值的值),而WPF完全支持这种绑定。

答案 1 :(得分:2)

或者您可以转移到Silverlight 3,它将UI元素引入元素绑定:)

出于某种原因(为什么他们这样做超出了我),语法略有不同,而不是在使用WPF时写作:

 <TextBlock Text="{Binding ElementName=WhichNumber, Path=SelectedItem.Content}"/>

你会用Silverlight 3编写:

 <TextBlock Text="{Binding ElementName=WhichNumber, SelectedItem.Content}"/>

所以没有'Path ='部分。

不幸的是,微软的Silverlight人员倾向于对语法和其他内容进行微小的改动,而不是努力在WPF和Silverlight之间轻松地重用代码。