我正在重新审视我已经处理过的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>
我搜索了异常消息,但我不确定为什么“内联”触发设置用于工作且不再有效。
有人能够对此有所了解吗?
答案 0 :(得分:2)
我会说,当你内联时,设置值。你正在设置一个集合。
通常建议将集合设置为只读,它们可能会改变这一点,而通过另一种方式,您添加到集合中,即使集合是只读的也没有问题。