C# Datagrid未保存用户应用的更改
我很难让电网正常工作: 我想让用户添加行,但在编译程序时,C# Datagrid未保存用户应用的更改,c#,wpf,C#,Wpf,我很难让电网正常工作: 我想让用户添加行,但在编译程序时,CanUserAddRows设置为false。-解决 我面临的另一个问题是,当用户编辑网格时,它没有应用已更改的内容;尽管删除操作很好 我怎样才能解决这个问题 public ObservableCollection<BolaInfo> bolas; public IniciaSim() { this.InitializeComponent(); this.bolas = new ObservableCollec
CanUserAddRows
设置为false。-解决
我面临的另一个问题是,当用户编辑网格时,它没有应用已更改的内容;尽管删除操作很好
我怎样才能解决这个问题
public ObservableCollection<BolaInfo> bolas;
public IniciaSim()
{
this.InitializeComponent();
this.bolas = new ObservableCollection<BolaInfo>();
}
private void Introduzir_Click(object sender, RoutedEventArgs e)
{
if (rendering)
{
plotCanvas.Children.Clear();
CompositionTarget.Rendering -= RenderFrame;
rendering = false;
}
DataGrid dados = new DataGrid();
dados.Width = plotCanvas.ActualWidth;
dados.Height = plotCanvas.ActualHeight;
dados.ColumnWidth = 128;
dados.IsReadOnly = false;
dados.IsEnabled = true;
dados.AutoGenerateColumns = true;
dados.CanUserResizeColumns = false;
dados.CanUserReorderColumns = false;
dados.CanUserAddRows = true;
dados.CanUserDeleteRows = true;
dados.ItemsSource = bolas;
}
public observedcollection bolas;
公共IniciaSim()
{
this.InitializeComponent();
this.bolas=新的ObservableCollection();
}
私有无效导入器单击(对象发送器,路由目标)
{
如果(渲染)
{
plotCanvas.Children.Clear();
CompositionTarget.Rendering-=RenderFrame;
渲染=假;
}
DataGrid dados=新DataGrid();
dados.Width=plotCanvas.ActualWidth;
护墙板高度=plotCanvas.ActualHeight;
dados.ColumnWidth=128;
dados.IsReadOnly=false;
dados.IsEnabled=真;
dados.AutoGenerateColumns=true;
dados.CanUserResizeColumns=false;
dados.CanUserReorderColumns=false;
dados.CanUserAddRows=true;
dados.CanUserDeleteRows=true;
dados.ItemsSource=bolas;
}
检查BolaInfo类是否有无参数的构造函数。我认为只有当类可以创建一个没有参数的新实例时,才能自动添加行。问题的第一部分已经解决,现在我遇到了不提交网格中引入的数据的问题。我必须将一些情况下的绑定模式=双向进行列绑定,但我没有使用AutoGenerateColumns,问题是我使用datagrid进行用户输入,但只想限制两个值。如果我使用TwoWay并只声明我希望用户使用的两个字段,它不会自动设置其他值,所以现在我使用AutoGenerateColumns,因为我绕过了另一个与网格无关的问题。我解决了一个问题,我发现了另一个问题。您可以检查(我不确定)ItemsSource是否使用用户值更新,如果是,您可以手动使用新值更新BolaInfo集合