2009-04-14 13 views
4

私はListBoxにバインドされたViewModelのコレクションを持っています。私はそれぞれのIsSelectedプロパティをバインドしようとしています。 WPFではスタイルを設定して動作します。Silverlight MVVM ListBoxItem IsSelected

<Style TargetType="{x:Type ListBoxItem}"> 
    <Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" /> 
</Style> 

これはSilverlightでは機能しません。どうすればこれを達成できますか?

+0

これを解決する運がありますか?私は全く同じ問題に直面している。 –

答えて

2

Silverlightでは、「グローバル」スタイル、つまり特定の種類のすべてのコントロールを変更するスタイルを作成することはできません。あなたのスタイルは鍵を必要とし、あなたのコントロールはそれを参照する必要があります。

また、TargetTypeにはコントロールの型名が必要です。 Silverlightはx:Type拡張子をサポートしていません。

ib。ここで

1

は、私はそれを行う方法は次のとおりです。

<ListBox.ItemTemplate> 
    <DataTemplate> 
... 
<CheckBox VerticalAlignment="Top" HorizontalAlignment="Left" 
      x:Name="CheckBox1" IsChecked="True" Grid.Row="0"> 
    <inf:BindingHelper.Binding> 
     <inf:BindingProperties TargetProperty="Visibility" SourceProperty="IsSelected" 
      Converter="{StaticResource VisibilityConverter}" 
      RelativeSourceAncestorType="ListBoxItem" /> 
    </inf:BindingHelper.Binding> 
</CheckBox> 
... 
    </DataTemplate> 
</ListBox.ItemTemplate> 

あなたは、残念ながらSilverlightで存在しない、相対的な結合を行う必要があります... BindingHelperは(相対」を検索この制限を克服するヘルパークラスです。それを見つけるために銀の中に縛る ")。

関連する問題