Возникло исключение при установке Trigger против ListBox - PullRequest
1 голос
/ 23 марта 2012

Я пересматриваю проект MVVM для Windows Phone, над которым работал, и у меня возникла проблема при добавлении Trigger в ListBox.Я обновил свой проект до 7.1.Ранее у меня был следующий код: -

            <ListBox x:Name="MainListBox"
                 ItemsSource="{Binding MyItems}"
                 Grid.Row="1"
                 Margin="12"
                 ItemContainerStyle="{StaticResource MyListItemStyle1}"
                 SelectedIndex="{Binding CurrentSelectedIndex, Mode=TwoWay}"
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled"
                 i:Interaction.Triggers="{StaticResource PerformSelectionChangedEventTrigger}" />

Однако теперь я получаю исключение следующим образом: -

Невозможно установить свойство только для чтения 'System.Windows.Interactivity.Interaction.Triggers

Внесение следующих изменений, по-видимому, решает проблему: -

            <ListBox x:Name="MainListBox"
                 ItemsSource="{Binding MyListItems}"
                 Grid.Row="1"
                 Margin="12"
                 ItemContainerStyle="{StaticResource MyListItemStyle1}"
                 SelectedIndex="{Binding CurrentSelectedIndex, Mode=TwoWay}"
                 ScrollViewer.HorizontalScrollBarVisibility="Disabled">                  
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectionChanged">
                    <cmdextras:EventToCommand Command="{Binding Path=PerformSelectionChanged}"
                                              PassEventArgsToCommand="True" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </ListBox>

Я искал сообщение об исключении, однако я не уверен, почему настройка триггера «inline» работает и больше не работает.работает.

Кто-нибудь сможет пролить свет на это?

1 Ответ

2 голосов
/ 23 марта 2012

Я бы сказал, когда вы делаете это в строке вы устанавливаете значение. Вы устанавливаете коллекцию.

Часто рекомендуется делать коллекции доступными только для чтения, они, вероятно, изменили этот бит, и, делая это другим способом, вы добавляете к коллекции, что не проблема, даже если коллекция доступна только для чтения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...