var q = from o in db.programOperators order by o.OperatorName select"(" + o.OperatorID.toString() + ")" + o.OperatorName ;
cmbOperators.ItemsSource = q;
varnormalNameForVariable!!! = from o in db.programOperators select new { ID = o.OperatorID, Name = o.OperatorName }.ToList();
//cmbOperators - тот самый комбобокс
cmbOperators.DataSource = normalNameForVariable!!!;
cmbOperators.DataTextField = "ID" ;
cmbOperators.DataValueField = "Name" ;
cmbOperators.DataBind();
KRA>var q = from o in db.programOperators order by o.OperatorName select"(" + o.OperatorID.toString() + ")" + o.OperatorName ;
KRA>cmbOperators.ItemsSource = q;
KRA>
А при выборе ID предполагается извлекать при помощи парсинга строки?
Есть база данных, в ней таблица с данными пользователей (id,login, name, sname, pass)
На WPF форме размещен combobox в который необходимо залить всех пользователей а именно их id и фамилии строка должна выглядеть вот так: "(1) Иванов"
На данный момент получается добыть данные таким запросом:
var q = from o in db.programOperators select new { o.OperatorID, o.OperatorName };
//cmbOperators - тот самый комбобокс
cmbOperators.ItemsSource = q.OrderBy(t => t.OperatorName);
Все отлично работает, но строка в комбобоксе получается вида: "{operatorID = 1, operatorName = "Иванов"}"
Собственно вопрос: Каким способом можно изменить вид получаемой строки?
Я в Linq to Sql новичек, может сам метод получения данных я выбрал не правильный?
Проект WPF.
Здравствуйте, Ziaw, Вы писали:
Z>Здравствуйте, KRA, Вы писали:
KRA>>
KRA>>var q = from o in db.programOperators order by o.OperatorName select"(" + o.OperatorID.toString() + ")" + o.OperatorName ;
KRA>>cmbOperators.ItemsSource = q;
KRA>>
Z>А при выборе ID предполагается извлекать при помощи парсинга строки?
Согласен, был не прав. Дальше отображения мысль не пошла.
Помнится какое-то время назад искал и нашёл только два решения для отображения, ни одно из которых не удовлетворило меня
1. переопределить toString у объектов из itemSource
2. определить новое свойство и указать его в DisplayMemberPath
Здравствуйте, DuШes, Вы писали:
DШ>Здравствуйте, Rammf, Вы писали:
DШ>...
DШ>
DШ>varnormalNameForVariable!!! = from o in db.programOperators select new { ID = o.OperatorID, Name = o.OperatorName }.ToList();
DШ>//cmbOperators - тот самый комбобокс
DШ>cmbOperators.DataSource = normalNameForVariable!!!;
DШ>cmbOperators.DataTextField = "ID" ;
DШ>cmbOperators.DataValueField = "Name" ;
DШ>cmbOperators.DataBind();
DШ>
Пытаюсь повторить сей код (на этот раз я придумал нормальное имя для переменной ), но свойства DataSource у комбобокса нет. Пишу в 2008 студии, для фреймворка 3.5, на С#, WPF проект (на случай если это что то прояснит)
Здравствуйте, Rammf, Вы писали:
R>Пытаюсь повторить сей код (на этот раз я придумал нормальное имя для переменной ), но свойства DataSource у комбобокса нет. Пишу в 2008 студии, для фреймворка 3.5, на С#, WPF проект (на случай если это что то прояснит)
Здравствуйте, Grog13, Вы писали:
G>Здравствуйте, Rammf, Вы писали:
R>>Пытаюсь повторить сей код (на этот раз я придумал нормальное имя для переменной ), но свойства DataSource у комбобокса нет. Пишу в 2008 студии, для фреймворка 3.5, на С#, WPF проект (на случай если это что то прояснит)
G>ItemsSource?
Да на самом деле все просто Макрософт решила поменть банальные свойства.
Оказалось в WPF DataSource == ItemSource, DataKey == DisplayMemberPath, DataValue == SelectedValuePath.