1

次のコードはWPFで正常に動作します。

Silverlightでは、**Invalid attribute value {Binding ElementName=WhichNumber, Path=SelectedItem.Content} for property 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}"/>
4

2 に答える 2

2

Silverlightは相対バインド(ある要素の属性を別の要素の属性値の値にバインドする)をサポートしていませんが、WPFはその種類のバインドを完全にサポートしています。

于 2009-06-11T01:18:06.247 に答える
2

または、要素バインディングに UI 要素を導入する Silverlight 3 に移行することもできます:)

なんらかの理由で (なぜ彼らがこれを行ったのかは私にはわかりません)、構文は、WPF を使用するときに記述するのではなく、わずかに異なります。

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

Silverlight 3 で次のように記述します。

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

したがって、「Path=」部分はありません。

残念ながら、Microsoft の Silverlight 担当者は、WPF と Silverlight 間で簡単にコードを再利用できるように努力するのではなく、構文やその他の事柄に小さな変更を加える傾向があります。

于 2009-06-11T07:24:00.630 に答える