0

Silverlight 4でMVVMパターンを使用して、TODOアイテムのコレクションをリストボックスにバインドしています。

IsSelectedTODOエンティティにプロパティがあります。これにより、ViewModelにバインドされたUIで複数の選択を行うことができます。同時に、ViewModelによって行われた変更はすべてビューに反映されます。

私は基本的にこの答えで提案されたことをやろうとしています。

残念ながら、Silverlightでは(WPFとは対照的に) 、スタイルセッターのバインディングはSL4でサポートされていないため、テンプレートを使用してこれを行う方法を見つけることができません。

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

ただし、他の方法とは異なり、これは、選択したアイテムリストの双方向バインディングで最も信頼できるようです。

このバインディングをコードビハインドまたはXAMLで表現するにはどうすればよいですか?

4

1 に答える 1

3

私が知っている最も簡単な方法は、DataTemplate をオーバーロードして、ListBoxItem の選択のように見せることです。Blend 4.0 Silverlight SDK の DataStateBehavior を使用して、IsSelected プロパティを正しいルック アンド フィールに関連付けました。

<i:Interaction.Behaviors>
    <ei:DataStateBehavior Binding="{Binding IsSelected, Mode=TwoWay}" Value="True" TrueState="Selected" FalseState="Unselected"/>                   
</i:Interaction.Behaviors>

全体を貼り付けるのではなく、ブログに追加した投稿にリンクしています

于 2010-07-27T01:59:23.420 に答える