在针对ListBox设置触发器时引发异常

时间:2012-03-23 16:09:16

标签: windows-phone-7 windows-phone-7.1

我正在重新审视我已经处理过的MVVM Windows Phone项目,当我向ListBox添加Trigger时遇到了一个问题。我已将项目升级到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>

我搜索了异常消息,但我不确定为什么“内联”触发设置用于工作且不再有效。

有人能够对此有所了解吗?

1 个答案:

答案 0 :(得分:2)

我会说,当你内联时,设置值。你正在设置一个集合。

通常建议将集合设置为只读,它们可能会改变这一点,而通过另一种方式,您添加到集合中,即使集合是只读的也没有问题。