Почему Path = SelectedItem.Content работает для ComboBox в WPF, но не для Silverlight? - PullRequest
1 голос
/ 11 июня 2009

Следующий код отлично работает в WPF .

В Silverlight выдает ошибку ** Неверное значение атрибута {Binding ElementName = WhichNumber, Path = SelectedItem.Content} для свойства Text **

Как мне заставить это работать в 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 ]

2 голосов
/ 11 июня 2009

Или вы можете перейти к Silverlight 3, который вводит элемент интерфейса для привязки элемента:)

По какой-то причине (почему они сделали это вне меня) синтаксис немного отличается, вместо записи при использовании WPF:

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

вы бы написали с Silverlight 3:

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

то есть без части 'Path ='.

К сожалению, сотрудники Silverlight в Microsoft имеют тенденцию вносить небольшие изменения в синтаксис и другие вещи, а не стремиться к легкому повторному использованию кода в WPF и Silverlight.

2 голосов
/ 11 июня 2009

Silverlight не поддерживает относительную привязку (привязку атрибута одного элемента к значению значения атрибута другого элемента), в то время как WPF полностью поддерживает такую ​​привязку.

...