WPF:将 DataGrid 绑定到 List<String>
Posted
技术标签:
【中文标题】WPF:将 DataGrid 绑定到 List<String>【英文标题】:WPF: Bind DataGrid to List<String> 【发布时间】:2011-02-21 19:24:39 【问题描述】:有趣的是,有时简单的事情会在背后咬我。
我可以使用这样的 DataGridTextColumn 将 DataGrid 很好地绑定到某个任意类的 Collection:
// bound to List<Class>
<DataGridTextColumn Header="Name" Binding="Binding Name"/>
现在我想将一个 DataGrid 绑定到一个简单的字符串集合。因此,由于没有要绑定的属性“名称”或类似的东西,我该如何编写绑定:
// bound to List<String>
<DataGridTextColumn Header="Name" Binding="Binding ???"/>
字符串没有属性“值”或类似的东西。如果我只写 Binding ,我最终会得到一个单向绑定,无法将更改写回 Collection。
想一想,我认为绑定到集合是不可能的,所以我确实需要将我的字符串包装到一个类中? 或者有什么办法?
【问题讨论】:
【参考方案1】:您可以使用以下 Binding 使其运行:
Binding="Binding Path=.
但这不会解决您的问题,因为字符串是不可变的引用类型,这意味着您无法更改绑定到用户界面的字符串引用。
所以您的想法是正确的,您需要将这些字符串包装在对象中,使用 Binding 的 path 属性并将这些对象提供给您的 DataGrid。
public class StringWrapper
public string Value get; set;
【讨论】:
但是为什么包装器工作?我们仍然绑定到一个字符串,对吧? No.. 您正在绑定到一个包含字符串的对象。这就是区别 我现在明白了。绑定不能更改绑定的引用。它只能更改属性。现在说得通了。非常感谢。以上是关于WPF:将 DataGrid 绑定到 List<String>的主要内容,如果未能解决你的问题,请参考以下文章