Подтвердить что ты не робот

WPF: привязать DataGrid к списку <String>

Смешно, как иногда простые вещи укусят меня сзади.

Я могу привязать DataGrid к коллекции любого произвольного класса, используя DataGridTextColumn, как это:

// bound to List<Class>
<DataGridTextColumn Header="Name" Binding="{Binding Name}"/>

Теперь я хочу привязать DataGrid к простой коллекции String. Так как нет свойства "Имя" или чего-то подобного для привязки, как мне написать привязку:

// bound to List<String>
<DataGridTextColumn Header="Name" Binding="{Binding ???}"/>

Строка не имеет свойства "Значение" или что-то в этом роде. И если я просто напишу {Binding}, я в конечном итоге получаю одностороннюю привязку, не в состоянии записать изменения в коллекцию.

Размышляя об этом, я думаю, что невозможно связать с коллекцией, поэтому мне нужно перенести мою строку в класс?
Или есть способ?

4b9b3361

Ответ 1

Вы можете запустить его со следующей привязкой:

Binding="{Binding Path=.}

Но он не решит вашу проблему, потому что строки являются типичными, которые являются неизменяемыми, то есть вы не можете изменить ссылку на строку, привязанную к вашему пользовательскому интерфейсу.

Итак, ваши мысли верны, вам нужно будет обернуть эти строки в объекты, использовать свойство path для Binding и передать эти объекты в DataGrid.

public class StringWrapper
{
    public string Value { get; set; }
}