我有列表选择器,它包含城市。
在我的应用程序中,我将用户最后一个选择保存到文本文件中,因此当用户重新启动应用程序时,他们不必从列表中选择相同的城市,它将自动获取,但是当SelectionChanged事件自动触发时,它会将索引0处的城市保存为选择。这打破了我关于保存用户操作的全部观点,因为每次用户启动程序时它都会将索引0保存为用户操作,就像他没有选择城市一样。
此外,selectionchanged会自动激活2次。
选择代码更改:
private void cities_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
i++;
MessageBox.Show(i.ToString());
ISF = IsolatedStorageFile.GetUserStoreForApplication();
using (StreamWriter SW = new StreamWriter(new IsolatedStorageFileStream("citycelection.txt", FileMode.Create, FileAccess.Write, ISF)))
{
SW.WriteLine(cities.SelectedIndex.ToString());
SW.Close();
}
}
xaml代码:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Name="lpkItemTemplate">
<TextBlock Text="{Binding Country}" />
</DataTemplate>
<DataTemplate x:Name="lpkFullItemTemplate">
<TextBlock Text="{Binding Country}" />
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
<toolkit:ListPicker FullModeItemTemplate="{Binding lpkFullItemTemplate}" FontSize="20"
ItemTemplate="{Binding lpkItemTemplate}" SelectionChanged="cities_SelectionChanged" x:Name="cities" Height="80">
</toolkit:ListPicker>
添加项目:
public MainPage()
{
InitializeComponent();
_timer.Interval = TimeSpan.FromMilliseconds(1000);
cities.Items.Add(" ");
cities.Items.Add("Banovići");
cities.Items.Add("Banja Luka");
cities.Items.Add("Bihać");
cities.Items.Add("Bijeljina");
cities.Items.Add("Bileća");
cities.Items.Add("Bos.Brod ");
cities.Items.Add("Bos.Dubica ");
}
答案 0 :(得分:0)
在初始化组件之前填充列表(城市),假设您使用绑定将城市绑定到视图。这将在第一次触发时,因为列表已加载,因此完成了第一次选择(空)。