【问题标题】:How to reload WPF grid如何重新加载 WPF 网格
【发布时间】:2019-02-09 01:24:26
【问题描述】:

This is my code 我正在开发一个 WPF 应用程序来在单击更新按钮时更新数据库。我还想在单击更新按钮后将我从数据库获取的数据重新加载到网格中...请帮助我解决这个问题

【问题讨论】:

标签: c# wpf grid


【解决方案1】:

我刚刚将第一次加载窗口时用来调用动态按钮的方法再次调用到按钮单击事件。因此,通过从数据库中获取更新的列表再次创建了按钮。

【讨论】:

    【解决方案2】:
    1. 按钮点击事件代码

      private void btnsave_Click(object sender, RoutedEventArgs e)
      {
          try
          {
              if (!IsPageValid())
              {
      
              }
              else
              {
                  feesGroup_Model.Name = txtname.Text;
                  feesGroup_Model.Description = txtdiscription.Text;
      
                  feesGroups_ViewModel.FeesGroup_Insert(feesGroup_Model);
                  lstvwCustomerslist.ItemsSource = feesGroups_ViewModel.BindFeesGroupData(txtSearch1.Text);
      
                  txtname.Text = string.Empty;
                  txtdiscription.Text = string.Empty;
                  lblmsg.Visibility = Visibility.Hidden;
                  errorgrid.Visibility = Visibility.Collapsed;
      
                  bindpaggination();
              }
          }
          catch (Exception ex)
          {
              var abc = ex.ToString();
              throw;
          }
      }
      

    【讨论】:

      【解决方案3】:
      1. :GetData() 用于从数据库绑定数据
      2. :bindpaggination() 用于刷新数据网格的分页和数据。
      3. :在按钮单击事件的插入或更新方法之后调用 bindpaggination()。
      4. :lstvwCustomerslist = 您的数据网格名称
      5. :空模型:ObservableCollection list = new ObservableCollection();

        private void bindpaggination()
        {
            var myList = GetData();
            lstvwCustomerslist.ItemsSource = myList.Take(numberOfRecPerPage);
            int count = myList.Take(numberOfRecPerPage).Count();
            lblpageInformation.Content = count + " of " + myList.Count;
        }
        private ObservableCollection<FeeType_Model> GetData()
        {
            ObservableCollection<FeeType_Model> list = new ObservableCollection<FeeType_Model>();
            var dt = feesType_ViewModel.BindALLFeesTypeData();
            for (int i = 0; i < dt.Rows.Count; i++)
            {
                FeeType_Model feeType_Model = new FeeType_Model();
                feeType_Model.Id = Convert.ToInt32(dt.Rows[i]["id"]);
                feeType_Model.Type = dt.Rows[i]["type"].ToString();
                feeType_Model.Code = dt.Rows[i]["code"].ToString();
                feeType_Model.Is_active = dt.Rows[i]["is_active"].ToString();
                feeType_Model.Created_at = dt.Rows[i]["created_at"].ToString();
                feeType_Model.Description = dt.Rows[i]["description"].ToString();
        
                list.Add(feeType_Model);
            }
            return list;
        }
        

      【讨论】:

      • 如果您没有在 WPF 代码中使用 MVVM。在最初插入或更新数据后,您必须将 datagrid 设为空,然后再次绑定 DataGrid 在使用 datagridname.items.refresh() 刷新 datagrid 之后,它会在 datagrid 中显示更新的数据。
      • 我想知道重新加载网格的方式.. 不是数据网格
      • 是的,上面的代码只是示例如果您想在数据网格中使用数据库,如何重新加载数据。您还可以刷新您的 wpf 网格,只需将 X:NAME 传递给网格,并在按下插入或更新按钮单击事件时在构造函数中使用其名称,调用构造函数并刷新 GRID(也关闭所有打开该网格的所有选项卡)。我希望它对你有用。
      • 请把你的sn-p或代码发给我好吗?如此有效,我将帮助您解决您的问题
      • 我已将那个插入驱动器并在此处链接.. 抱歉,我不知道共享代码的另一种方式
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-26
      相关资源
      最近更新 更多