2010-07-25 1 views
0

Я использую MVVM шаблон с Silverlight 4 связать коллекцию TODO элементов в ListBox.Привязка ListBoxItem.ItemSelected к связанному элементу Silverlight

Объект IsSelected на каждом объекте TODO. Это позволяет делать множественные выборы в пользовательском интерфейсе, которые привязаны к ViewModel. В то же время любые изменения, сделанные ViewModel, отражаются в представлении.

Ставка ¥ особые пометки Для покупок необходима авторизация Ставка ¥ особые пометки Для покупок необходима авторизация Ставка ¥ особые пометки Для покупок необходима авторизация я в основном стараюсь, что было suggested in this answer.

К сожалению, в Silverlight (в отличие от WPF) я просто не могу найти способ сделать это с помощью шаблона с Bindings in a Style Setter are not supported в SL4.

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

Однако в отличии от любого другого метода - это, как представляется, наиболее надежными для двухстороннего связывания выбранного списка элементов.

Как я могу выразить это связывание в codebehind или XAML?

ответ

3

Самый простой способ, которым я знаю, - перегрузить DataTemplate и сделать его похожим на выбор ListBoxItem. Я использовал DataStateBehavior из Blend 4.0 Silverlight SDK, чтобы связать свойство IsSelected с правильным внешним видом.

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

Вместо того, чтобы вставить всю вещь, я ссылки на пост я добавил в своем блоге here.

+0

+1 mate, я как раз осуществлял что-то именно так, и ваше сообщение в блоге помогло мне подтвердить, что оно будет работать! ;) – Town

+0

Это не работает корректно в WPF. Это ошибка WPF? По какой-то причине цвет заливки не отображается на выбранных персонажах. Цвет не появляется, пока я не сниму галочку и не перепроверяю окно. Проверено, работает ли оно в Silverlight. – kbeal2k

+0

Вам не нужно это решение в WPF, как указано в исходном вопросе. Если у вас возникли проблемы, я предлагаю вам ответить на вопрос ответа или задать новый вопрос с подробной информацией о том, что вы видите. – WiredPrairie

 Смежные вопросы

  • Нет связанных вопросов^_^