使用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时,它将读取名称并尝试设置它,并选择索引它将读取索引号并尝试设置它但我没有运气。
有人能帮助我吗? 谢谢!
答案 0 :(得分:1)
假设您正确地将索引保存到color.txt
文件,这样的事情应该有效:
var colorIndexString = contactcolorx.ReadToEnd();
var colorIndex = int.Parse(colorIndexString);
ListPicker.SelectedIndex = colorIndex;
当然,首先填充ListPicker的ItemsSource
。