选择ListPickerItem

时间:2014-02-22 04:25:30

标签: c# windows-phone-8 listpicker

使用MSDN示例,我设法获得了ListPicker颜色选择器,并将其添加到我的项目中。它正在使用ObservableCollection。

代码是:

public class ColorSelectModel
    {
        public ColorSelectModel(string text, Color color)
        {
            this.Text = text;
            this.Color = color;
            this.ColorBrush = new SolidColorBrush(color);
        }
        public string Text { get; set; }
        public Color Color { get; set; }
        public SolidColorBrush ColorBrush { get; set; }
    }

加载颜色:

var colors = new List<Collections.ColorSelectModel>();
        colors.Add(new Collections.ColorSelectModel("Blue", Colors.Blue));
        colors.Add(new Collections.ColorSelectModel("Crimson", Colors.Brown));
        colors.Add(new Collections.ColorSelectModel("Cyan", Colors.Cyan));
        colors.Add(new Collections.ColorSelectModel("Gray", Colors.DarkGray));
        colors.Add(new Collections.ColorSelectModel("Dark Gray", Colors.Gray));
        colors.Add(new Collections.ColorSelectModel("Green", Colors.Green));
        colors.Add(new Collections.ColorSelectModel("Light Gray", Colors.LightGray));
        colors.Add(new Collections.ColorSelectModel("Magenta", Colors.Magenta));
        colors.Add(new Collections.ColorSelectModel("Orange", Colors.Orange));
        colors.Add(new Collections.ColorSelectModel("Purple", Colors.Purple));
        colors.Add(new Collections.ColorSelectModel("Red", Colors.Red));
        colors.Add(new Collections.ColorSelectModel("Yellow", Colors.Yellow));
        listPickerColor.ItemsSource = listPickerColor.ItemsSource ?? new ObservableCollection<Collections.ColorSelectModel>(colors);

所以我在第1页上添加了这个listpicker。每当用户导航到第1页时,这个listpicker将自动选择第一个值,即蓝色。现在在另一个页面上,当用户单击“编辑”按钮时,它们将被导航回第1页,其中值将位于文本框上。

现在问题是我需要一种方法来设置ListPicker以根据我使用IsolatedStorage读取的值自动选择项目。

IsolatedStorageFileStream readColor = store.OpenFile("/color.txt", FileMode.Open, FileAccess.Read);
            using (StreamReader contactcolorx = new StreamReader(readColor))
            {
                var color = contactcolorx.ReadToEnd();
            }

现在颜色会很好。但我尝试过:ListPicker.SelectectedItem = color; and ListPicker.SelectedIndex = color;当我尝试使用SelectedItem时,它将读取名称并尝试设置它,并选择索引它将读取索引号并尝试设置它但我没有运气。

有人能帮助我吗? 谢谢!

1 个答案:

答案 0 :(得分:1)

假设您正确地将索引保存到color.txt文件,这样的事情应该有效:

var colorIndexString = contactcolorx.ReadToEnd();
var colorIndex = int.Parse(colorIndexString);
ListPicker.SelectedIndex = colorIndex;

当然,首先填充ListPicker的ItemsSource