Забавный, как иногда простые вещи кусают меня в позади.
Я могу связать DataGrid приятно с Набором некоторого произвольного класса, с помощью DataGridTextColumn как это:
// bound to List<Class>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>
Теперь я хочу связать DataGrid с простым Набором Строки. Таким образом, с тех пор нет никакого свойства "Name" или чего-то как этот для привязки с, как делают я пишу привязку:
// bound to List<String>
<DataGridTextColumn Header="Name" Binding="{Binding ???}"/>
Строка не имеет никакого Свойства "Значение" или что-то как этот. И если я просто запишу {Привязка}, то я закончу с одной дорожной привязкой, не могущей записывать изменения обратно в Наборе.
Думая об этом, я думаю, что не возможно связать с набором, таким образом, я действительно должен перенести свою строку в класс?
Или есть ли путь?
Вы можете запустить его с помощью следующей привязки:
Binding="{Binding Path=.}
Но это не решит вашу проблему, потому что строки являются неизменяемыми ссылочными типами, то есть вы не можете изменить ссылку на строку, привязанную к своему пользовательскому интерфейсу.
Итак, ваши мысли верны, вам нужно будет обернуть эти строки в объекты, использовать свойство path в Binding и передать эти объекты в ваш DataGrid.
public class StringWrapper
{
public string Value { get; set; }
}