【问题标题】:How can I make an editable DataGrid in WPF?如何在 WPF 中制作可编辑的 DataGrid?
【发布时间】:2012-11-21 22:48:41
【问题描述】:
基本上我的 MainWindow 中有以下内容:
public ObservableCollection<KeyValuePair<string, int>> Environment { get; set; }
我想将它绑定到数据网格,以便我可以编辑数据网格并更新Environment。具体来说,我希望能够添加新行、删除行和编辑单个单元格。我该怎么做?
【问题讨论】:
标签:
c#
.net
wpf
datagrid
observablecollection
【解决方案1】:
在 xaml 中你可以写:
<DataGrid ItemsSource="{Binding}">
<DataGrid.Columns>
<DataGridTemplateColumn Header="SomeString">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SomeString}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="SomeInt>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SomeInt}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
在 make 后面的代码中:
具有 SomeString 和 SomeInt 字段的数据类“DataClass”
“ViewModel”类,继承 INotifyPropertyChanged 并使用“DataClass”
写:
ObservableCollection<ViewModel> Environment
并用 SomeString 和 SomeInt 对来实例化它
使用 DataGrid 环境设置控件的数据上下文:
MyUserControl.DataContext = Environment;