我试图让dataGrid1可编辑。我读到我可以为List创建一个类实例,然后将其分配给DataGrid.ItemSource。这可能只有2行代码,但仍然挂了如何使用下面的代码。有任何想法吗?谢谢!
public class MyData
{
public string street { set; get; }
public string town { set; get; }
}
DataGridTextColumn col1 = new DataGridTextColumn();
col1.Binding = new Binding("name");
dataGrid1.Columns.Add(col1);
dataGrid1.Items.Add((new MyData() { street = "5th ave", town = "neverland"}));
好的,谢谢你的帮助。仍然试图习惯在stackoverflow上发布。这是我改变了,它对我有用。
List<MyData> MyListBox1 =new List<MyData>();
MyListBox1.Add(new MyData() { street = "5th ave", town = "neverland"}));
List<MyData> MyListBox1 =new List<MyData>();
我还必须添加
使用System.Collections.Generic;
答案 0 :(得分:1)
<DataGrid AutoGenerateColumns="False" Name="dataGrid1">
<DataGrid.Columns>
<DataGridTextColumn Header="Street" Binding="{Binding street}"/>
<DataGridTextColumn Header="Town" Binding="{Binding town}"/>
<!-- by defect is editable -->
<DataGridTextColumn Header="Town" Binding="{Binding town}" IsReadOnly="True"/>
<!-- Not editable -->
... more properties
</DataGrid.Columns>
</DataGrid>
在您的类中仅使用DataGrid
绑定List(任何可枚举的) public MyClass
{
InitializeComponent();
List<MyData> lstData = new List<MyData>();
dataGrid1.ItemsSource = lstData;
}
使用它可以编辑DataGrid,每个项目都将添加到List
答案 1 :(得分:0)
好吧,你没有分配ItemsSource
,你在Items
集合中添加了一个项目,这是一件完全不同的事情。
(另外,如果没有这样的属性,为什么要绑定到name
?)
答案 2 :(得分:0)
使您的ItemsSource成为ObservableCollection以完美地运作 ObservableCollection itmSrcLevels = new ObservableCollection(ItemsSrc1);