在Win 8 Release Preview下运行的WinRT应用程序中,我遇到一个奇怪的问题。这是一段代码:
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBox Grid.Column="0" Text="{Binding Name, Mode=TwoWay}" VerticalAlignment="Center"/>
<ComboBox Grid.Column="1" ItemsSource="{Binding Source={StaticResource evtTypeRes}}" SelectedValuePath="ID" DisplayMemberPath="Name" SelectedValue="{Binding EventTypeID, Mode=TwoWay}" VerticalAlignment="Center"/>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
ListView由ObservableCollection列表支持,项目实现INotifyPropertyChanged。问题是,当我在屏幕中更改组合框的值时,不仅对特定行更改了值,而且每行都更改了值(属性的setter在集合的每个对象上调用)。文本框不是这种情况。这种奇怪行为可能是什么原因?
提前致谢
答案 0 :(得分:0)
我发现IsSynchronizedWithCurrentItem
属性的目的:值False
解决了我的问题。