摘要: 多数耗时操作可以异步执行,推荐async/await。 但和UI相关的部分仅能在UI线程执行,这时UI线程的耗时操作,导致界面卡死,不够友好。 我们可以创建一个单独的UI线程显示一个正在加载的窗口,可以在窗口显示一些动画之类的。 如果是WinForms那么很容易做到。 WPF没有提供这样简单的方式, 阅读全文
posted @ 2019-07-20 00:54 玩命夜狼 阅读(1531) 评论(4) 推荐(0) 编辑
摘要: 在View中完成数据筛选,无需改变数据源的内容,这样就不必担心在其它地方也使用这个数据源。 从路由事件 TextBoxBase.TextChanged 中获取输入的文本,并设置视图的过滤器就可以了。 CollectionViewSource.GetDefaultView 方法是返回一个 IColle 阅读全文
posted @ 2019-07-08 18:58 玩命夜狼 阅读(976) 评论(0) 推荐(2) 编辑
摘要: 使用ItemContainerGenerator.ContainerFromItem方法可以获取对应数据的UIElement 。 但是如果使用了虚拟化技术,超出可见区域的UIElement就获取不到了。 参考微软的文档《如何:在 TreeView 中查找 TreeViewItem》,去掉一些不必要的 阅读全文
posted @ 2019-07-02 20:42 玩命夜狼 阅读(632) 评论(0) 推荐(1) 编辑
摘要: 缺点,不能进行单元测试 比如,用户在界面点击按钮,实现用户选择一个文件,然后对文件内容进行解析。常见错误如下 和用户交互的部分(OpenFileDialog),应该放在View中。这里可以利用命令参数来传递文件名 在View中按钮的单击事件中,进行交互。如果用户取消了操作,利用异常取消命令执行 在x 阅读全文
posted @ 2019-06-30 16:27 玩命夜狼 阅读(959) 评论(1) 推荐(1) 编辑