Я использую textName для пользователя, чтобы ввести его имя. Затем, набрав, событие textaged обновляет список с именами, совпадающими с входными данными, затем пользователь может щелкнуть элемент (CompletedName в списке), и когда это происходит, мне нужно обновить текстовое поле с содержимым элемента. Эта проблема началась произойдет, когда я изменил «GivenName» (как поле из таблицы, к которой я запрашиваю) для «CompletedName» .. (это строка строки из запроса, как вы видите выше)
У меня есть этот запрос LINQ:
var players =
from p in context.Player
where (p.GivenName.StartsWith(TextName.Text.Trim()) || p.Number.StartsWith(TextName.Text) || p.Surname.StartsWith(TextName.Text) )
select new { CompleteName = p.GivenName + " " + p.Surname + " (" + p.Number + ")"};
Затем я делаю это источником для списка с именем listNames, и у меня есть это текстовое поле:
<TextBox Name="TextName" Text="{Binding ElementName=listNames, Path=SelectedItem.CompleteName}"/>
Когда я запускаю его, отображается следующая ошибка:
«Двухсторонняя или OneWayToSource привязка не может работать с доступным только для чтения свойством« CompleteName »типа« <> f__AnonymousType0`1 [System.String] '»
Я понимаю, конечно, что это не может быть TwoWay или OneWayToSource. Но мне нужно, чтобы пользователь мог добавлять контент в textName, потому что это также текстовое поле поиска, без обновления SelectedItem в списке.
Если я добавлю в текстовое поле выражение Mode = OneWay .. в элементе управления textName ничего не происходит, я имею в виду, что он не показывает элемент из списка.
Что я должен сделать, чтобы это работало ??