#c# #xml #silverlight #windows-phone-7
#c# #xml #silverlight #windows-phone-7
Вопрос:
У меня есть средство выбора списка, распространяемое двумя строками из XML-файла, одна из которых — имя, а другая — значение.
XmlReader xml = XmlReader.Create("file.xml");
XDocument _doc = XDocument.Load(xml);
var stringNames = from query in _doc.Descendants("string")
select new CustomValue
{
StringName = (string)query.Attribute("name"),
StringValue = (string)query.Attribute("value"),
};
Listpicker.ItemsSource = stringNames;
public class CustomValue
{
public string StringName
{
get;
set;
}
public string StringValue
{
get;
set;
}
}
Я могу прочитать значение ИЛИ имя, используя
((appname.pagename.CustomValue)(this.Listpicker.SelectedItem)).StringValue
Но я не могу установить SelectedItem, если бы я использовал метод, аналогичный приведенному выше, он изменяет значение stringValue в классе CustomValue.
Любая помощь очень ценится!
Спасибо 🙂
Комментарии:
1. Как вы пытаетесь установить
SelectedItem
? Как настроена привязка? Можете ли вы установитьSelectedIndex
ok?2. Пытаюсь установить его, используя строку из XML-файла, хранящегося в IO. Я пробовал оба
ListPicker.SelectedItem = string
и ((appname.pagename. Пользовательское значение) (это. Средство выбора списка. Выбранный элемент)). stringValue =string
Как бы я использовалSelectedIndex
? Спасибо
Ответ №1:
Вы не можете установить, SelectedItem = "something"
поскольку коллекция содержит экземпляры CustomValue
not string
. Вы должны сделать выбранный элемент одним из доступных элементов.
Допустим, вы хотели выбрать первый элемент в вашей коллекции. Есть 2 способа сделать это:
Listpicker.SelectedItem = stringNames.First();
или
Listpicker.SelectedIndex = 0;
Комментарии:
1. Спасибо! Я использовал метод выбранного индекса — намного проще, а другой метод, похоже, все равно не сработал… Спасибо за вашу помощь 🙂