WPF:将DataGrid绑定到List <string> </string>

时间:2010-05-20 10:36:11

标签: wpf binding datagrid

有趣的是,有时简单的事情会在背后咬我。

我可以使用像这样的DataGridTextColumn将DataGrid很好地绑定到某个任意类的Collection:

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

现在我想将DataGrid绑定到一个简单的String集合。因为没有属性“Name”或类似的东西要绑定,我该如何编写绑定:

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

字符串没有属性“值”或类似的东西。如果我只是写{Binding},我将最终得到一个单向绑定,无法将更改写回Collection。

考虑一下,我认为不可能绑定到一个集合,所以我需要将我的字符串包装成一个类? 或者有办法吗?

1 个答案:

答案 0 :(得分:33)

您可以使用以下绑定运行它:

Binding="{Binding Path=.}

但它不会解决您的问题,因为字符串是不可变的引用类型,这意味着您无法更改绑定到用户界面的字符串引用。

所以你的想法是正确的,你需要将这些字符串包装在对象中,使用Binding的path属性并将这些对象提供给你的DataGrid。

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