WPF: обяжите DataGrid перечислять <представляют в виде строки>

Забавный, как иногда простые вещи кусают меня в позади.

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

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

Теперь я хочу связать DataGrid с простым Набором Строки. Таким образом, с тех пор нет никакого свойства "Name" или чего-то как этот для привязки с, как делают я пишу привязку:

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

Строка не имеет никакого Свойства "Значение" или что-то как этот. И если я просто запишу {Привязка}, то я закончу с одной дорожной привязкой, не могущей записывать изменения обратно в Наборе.

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

24
задан Arcturus 11 January 2019 в 06:34
поделиться

1 ответ

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

Binding="{Binding Path=.}

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

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

public class StringWrapper
{
    public string Value { get; set; }
}
33
ответ дан 28 November 2019 в 23:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: