Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Datagrid未保存用户应用的更改_C#_Wpf - Fatal编程技术网

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集合