Xaml
<DataGrid Height="200"
Name="dataGrid1"
Margin="5,0,5,0"
VerticalAlignment="Top"
AlternationCount="2"
AutoGenerateColumns="False"
CanUserAddRows="False"
CanUserDeleteRows="False"
CanUserReorderColumns="False"
CanUserResizeColumns="False"
CanUserResizeRows="False"
CanUserSortColumns="False"
IsReadOnly="True"
RowHeaderWidth="0"
SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Width="8*" Header="账号" Binding="{Binding Name}"></DataGridTextColumn>
<DataGridTemplateColumn Width="2*" Header="状态" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock
Margin="0,0,0,0"
Foreground="#666666"
Text="{Binding Age}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
建立实体类
public class User : INotifyPropertyChanged
{
private string name;
public string Name
{
get
{
return name;
}
set
{
name = value;
OnPropertyChanged("Name");
}
}
public string Age { get; set; }
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
增删改
private void add_Click(object sender, RoutedEventArgs e)
{
//修改数据源后需手动重新赋值
datalist.Add(new User ());
dataGrid1.ItemsSource = null;
dataGrid1.ItemsSource = datalist;
}
private void delete_Click(object sender, RoutedEventArgs e)
{
if (dataGrid1.SelectedIndex >= 0)
{
//修改数据源后需手动重新赋值
datalist.RemoveAt(dataGrid1.SelectedIndex);
dataGrid1.ItemsSource = null;
dataGrid1.ItemsSource = datalist;
}
}
private void update_Click(object sender, RoutedEventArgs e)
{
if (dataGrid1.SelectedIndex >= 0)
{
//修改前台后数据源也会一起改变
SubRowsId().Name = "update";
}
}
#region 获取选中行的原始值
/// <summary>
/// 获取选中行的原始值
/// </summary>
/// <param name="rowindex"></param>
private User SubRowsId()
{
return (User)dataGrid1.SelectedItem;
}
#endregion