当控件被数据绑定时,无法以编程方式向DatagridView的行集合中添加行,怎么解决?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当控件被数据绑定时,无法以编程方式向DatagridView的行集合中添加行,怎么解决?相关的知识,希望对你有一定的参考价值。
参考技术A 1、确定“datagridview”已“启用添加”;2、设置SqlDataAdapter的InsertCommand(SqlCommandBuilder的GetInsertCommand())后再用SqlDataAdapter的Update();
3、要更新的表必须有主键。
以编程方式触发时 UIRefreshControl 不刷新
【中文标题】以编程方式触发时 UIRefreshControl 不刷新【英文标题】:UIRefreshControl not refreshing when triggered programmatically 【发布时间】:2015-02-16 20:45:36 【问题描述】:我试图在视图加载时显示刷新控件以显示我正在从 Parse 获取数据。刷新控件在应用程序运行时正常工作,但我无法从应用程序的任何位置以编程方式触发它。 这是似乎没有运行的代码:
override func viewDidAppear(animated: Bool)
self.refresher.beginRefreshing()
这不仅不会运行,而且应用程序中的代码会更改刷新控件的属性。当我在应用程序中有此代码并显示来自用户交互的刷新时,刷新控件没有它通常没有的属性标题,也没有运行它应该运行的代码。
【问题讨论】:
检查这个问题/答案UIRefreshControl not working when called prorgammatically 【参考方案1】:我需要在 setContentOffset 和 self.refreshControl?.sendActions(for: .valueChanged)
调用之间添加延迟。如果没有延迟,refreshControl 的属性标题将不会呈现。
这适用于 iOS 10 (Swift 3):
self.tableView.setContentOffset(CGPoint(x:0, y:self.tableView.contentOffset.y - (self.refreshControl!.frame.size.height)), animated: true)
DispatchQueue.main.asyncAfter(deadline: DispatchTime.now() + 0.2, execute:
self.refreshControl?.sendActions(for: .valueChanged)
)
【讨论】:
我试过你的解决方案,但它没有动画。 第一个self.tableView.setContentOffset(CGPoint(x:0, y:self.tableView.contentOffset.y - (self.refreshControl!.frame.size.height)), animated: true)
+ self.refreshControl?.beginRefreshing()
在 iOS 10 上为我工作。不需要 sendActions 调用。
谢谢。如果没有延迟,标题就不会出现!
我很惊讶没有人提出来:我建议直接调用所需的方法,而不是通过sendActions(for:)
方法使用目标操作。这对我来说似乎是一种解决方法 - 如果可以立即完成所有必要的工作,为什么还要等待 0.2 秒(或任何时间)?【参考方案2】:
这是一个适用于 10.3 的扩展:
extension UIRefreshControl
func refreshManually()
if let scrollView = superview as? UIScrollView
scrollView.setContentOffset(CGPoint(x: 0, y: scrollView.contentOffset.y - frame.height), animated: false)
beginRefreshing()
sendActions(for: .valueChanged)
【讨论】:
sendAction(for:) 引起了递归调用,该调用产生了意外的行为,使方法自身递归调用。除此之外,扩展效果很好。以上是关于当控件被数据绑定时,无法以编程方式向DatagridView的行集合中添加行,怎么解决?的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式为 DataGrid 创建 WPF DataGridTemplateColumn