wpf Command canExecute 更新】的更多相关文章

可以调用以下语句通知 CommandManager.InvalidateRequerySuggested();…
昨天在项目中遇到一个问题,按钮bind了Command后,利用CanExecute控制它的是否可点击.结果却在初始化viewmodel的时候执行了一次CanExecute,之后一直不触发,按钮的可用性状态也一直不改变.  public DelegateCommand NewCommand { get; set; } public DelegateCommand CheckCommand { get; set; } 看了半天,也没看出啥原因,以为是控件的问题,后来又换成普通的Button,结果还是…
WPF多线程UI更新——两种方法 前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对象.)这是很常见的一个错误,一不小心就会有这个现象.在WPF中,如果不是用多线程的话,例如单线程应用程序,就是说代码一路过去都在GUI线程运行,可以随意更新任何东西,包括UI对象.但是使用多线程来更新UI就可能会出现以上所说问题,怎么解决?本文章提供两个方法:Dispatcher(大部分人使用),T…
1.------------------------------------------------------------------------- 修改超链接的文本文字: <TextBlock><Hyperlink> <TextBlock  x:Name="TextBlockNeedChange" Text="改变的文本" /> </Hyperlink></TextBlock> 修改TextBlockN…
大家好,这次更新主要是去除一些无关的功能,界面做了很大的调整,以前都是自己写的 UI ,最近也引入了 WPF-UI ,挺不错的,特此表示感谢,也希望大家会喜欢,别的也就不多说了,本软件以实用性为主,采用MVVM模式,小巧.使用方便. 具体功能与更新如下: 计划任务:本软件由m.sh.lin0328@163.com开发与维护,如有好的意见或建议,可发送邮件到m.sh.lin0328@163.com,谢谢使用!注(功能与特色):1.本软件使用方便.操作简便,完全可以替代 Windows 系统中的计划…
Background In our application, we have a screen which hosts several tabs. In each tab, it contains a third-party  GridControl (like the WPF standard GridView control). And we need to display some column cells as hyper link, so user can click on it, v…
前言 在富客户端的app中,如果在主线程中运行一些长时间的任务,那么应用程序的UI就不能正常相应.因为主线程要负责消息循环,相应鼠标等事件还有展现UI. 因此我们可以开启一个线程来格外处理需要长时间的任务,但在富客户端中只有主线程才能更新UI的控件. 解决方法 简单的来说,我们需要从其他的线程来更新UI线程的控件,需要将这个操作转交给UI线程(线程marshal). 方法1: 在底层的操作中,可以有以下的方法: WPF中,在element的Dispatcher类中调用BeginInvoke或者I…
<Window x:Class="WpfTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008…
//定义接口 public interface IView { bool IsChanged { get; set; } void SetBinding(); void Clear(); } //定义命令 public class ClearCommand : ICommand { public event EventHandler CanExecuteChanged; public bool CanExecute(object parameter) { throw new NotImpleme…
当时我在搬运Prism6.3的sample代码的时候,就是因为网上的资料太老旧,万万没想到这给自己挖了一个坑,因为我在做笔记的时候,prism已经在更新7.0了 现在已经是7.2了,(lll¬ω¬),GitHub异常活跃 我个人目前是没有使用prism做项目的,所以也没有什么使用感受 这些文章也只是尬笔记,但不妨碍我把这个系列更新到7.1 [7.1updated] 从wpf的实例代码来看,7.1主要更新了几个部分: PrismApplication prismapp现在都是PrismApplic…
0.讲点废话 最近在做一个文件搜索的小软件,当文件多时,界面会出现假死的状况,于是乎想到另外开一个后台线程,更新界面上的ListView,但是却出现我下面的问题. 1.后台线程问题 2年前写过一个软件,里面后台线程是用如下方法: Thread searchFileThread = new Thread(new ThreadStart(StartSearchFile)); //搜索文件后台线程 searchFileThread.IsBackground = true; searchFileThre…
silverlight 或WPF在MVVM模式中使用INotifyDataErrorInfo接口对输入进行验证时 控件lostFocus时会触发验证,但在提交动作(例如button的Command)时,不触发 验证.下面的方法提供控件输入验证统一触发. 1.添加ValidationScope类 public class ValidationScope { public FrameworkElement ScopeElement { get; private set; } private read…
前言 在WPF中,在使用多线程在后台进行计算限制的异步操作的时候,如果在后台线程中对UI进行了修改,则会出现一个错误:(调用线程无法访问此对象,因为另一个线程拥有该对象.)这是很常见的一个错误,一不小心就会有这个现象.在WPF中,如果不是用多线程的话,例如单线程应用程序,就是说代码一路过去都在GUI线程运行,可以随意更新任何东西,包括UI对象.但是使用多线程来更新UI就可能会出现以上所说问题,怎么解决?本文章提供两个方法:Dispatcher(大部分人使用),TaskScheduler(任务调度…
   在做WPF开发时,如果直接在子线程里更新UI会报错—–“调用线程无法访问此对象,因为另一个线程拥有该对象.”,这是因为WPF禁止在非UI线程里直接更新UI界面. 解决方案:   在子线程里调用Dispatcher.BeginInvoke()或者Invoke()方法.    例如更新一个Button上的文字内容,可以在子线程里这样写: this.myButton.Dispatcher.BeginInvoke(new Action(()=> { this.myButton.Content =…
ArcGIS Runtime SDK 10.2.5 for WPF is now available! by mbranscomb and Rex Hansen on January 27, 2015 The 10.2.5 release of ArcGIS Runtime SDK for WPF is now available to download from ArcGIS for Developers. This release follows the 10.2.3 release in…
SelectionMode="Single" <DataGridTemplateColumn Header=""> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <Button Content="更新" Tag="{Binding}"> <Button.Style> <Style x:Name=&quo…
使用CustomControl时绑定Command用法 C# Part public static RoutedUICommand ClearCommand { get; private set; } static CustomControl() { DefaultStyleKeyProperty.OverrideMetadata(typeof(CustomControl), new FrameworkPropertyMetadata(typeof(CustomControl))); Custo…
1.ListView 的 ItemSource 使用 BindingList < T >: 注:由于 List < T > 没有实现 INotifyPropertyChanged 接口, 因此若使用 List < T > 作为 ItemSource,则当 ListView 新增.删除 Item 时,ListView UI 会不能即时更新: 2.对应 ListView 的 Item 的类 T 实现 INotifyPropertyChanged 接口: T 中 UI 绑定对…
目标:客户端程序在启动时,自动联网检查服务端是否有新的版本,有则提示用户更新客户端. 思路: 1.打开Visual Studio,在主体程序的解决方案下再新建一个叫自动更新程序的项目.主体程序的目录是D:\workspace\MyProject\Client\,自动更新程序的目录是D:\workspace\MyProject\UpdateTool\. 2.最后打包出来时将两个项目合并在一个Debug文件中.只需把自更程序exe和它依赖的dll文件一并拷到主体程序打包出来的Debug文件夹下即可.…
Command="{Binding GoPayCommand}" CommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"…
XAML 界面很简单,只有一个按钮和一个lable元素,要实现点击button时,lable的内容从0开始自动递增. <Grid> <Label Name="lable_plus" Content="0"/> <Button Content="Button" Click="button_Click" Height="23" Name="button" Wid…
<Style x:Key="mainInfoWindowStyleMF" TargetType="{x:Type esri:InfoWindow}"> <Setter Property="Background" Value="Red"/> <Setter Property="BorderBrush" Value="Blue"/> <Setter…
 private DelegateCommand searchCommand;         public DelegateCommand SearchCommand         {             get             {                 if (null == searchCommand)                 {                     searchCommand = new DelegateCommand(Search,…
做过WPF开发的人,都知道做MVVM架构,最麻烦的是Event的绑定,因为Event是不能被绑定的,同时现有的条件下,命令是无法替代Event.而在开发过程中无法避免Event事件,这样MVVM的架构就不能完全实现了. 所以后来微软提供了一个折中的方案,使用Trigger触发器和System.Windows.Interactivity结合通过事件绑定事件,个人觉得这个方法也挺可以的. 还有Prism框架方法,我看过但是这个方法比较繁琐可用性不高. 后来通过搜索和自己研究知道了一个解决方案,可以绑…
前言: Wpf开发过程中,最经常使用的功能之一,就是用户控件(UserControl)了.用户控件可以用于开发用户自己的控件进行使用,甚至可以用于打造一套属于自己的UI框架.依赖属性(DependencyProperty)是为用户控件提供可支持双向绑定的必备技巧之一,同样用处也非常广泛. 以下案例,为了图方便,我以之前的博客的基础为模板,直接进行开发.如有遇到疑问的地方,可以查看先前的博客(WPF使用prism框架+Unity IOC容器实现MVVM双向绑定和依赖注入)的文章做个前瞻了解: ht…
这是一个事件的辅助类,可以通过它实现MenuItem的Command事件 public class MyCommands : Freezable, ICommand, ICommandSource { public MyCommands() { } public static readonly DependencyProperty CommandParameterProperty = DependencyProperty.Register( "CommandParameter", ty…
什么是GeneralUpdate: GeneralUpdate是基于.net framwork4.5.2开发的一款(c/s应用)自动升级程序. 第一个版本叫Autoupdate(原博客: WPF自动更新程序)有人会奇怪为什么会改名称,稍微解释一下是因为在nuget上有重名的项目再者就是新版本更新功能不仅限于wpf程序的更新. 将更新的核心部分抽离出来方便应用于多种项目当中目前适用于wpf,控制台应用,winfrom.相比以前更方便的是不需要在过分关注源码可直接通过nuget直接使用. 如果有任何…
知识预备 阅读本文,我假定你具备以下知识: C# WPF基础知识 知道WPF的命令 WPF相对WinForm加了一种Command的机制,对用户的操作进行更加灵活的处理,相信很多朋友知道并用过Routed Command,但这不是本文讨论的重点,本文主要讨论在MVVM模式中,用户输入与后台数据的交互所用的Command. ICommand接口 在WPF中,所有的命令都是基于ICommand接口的,ICommand的接口有三个成员 Execute 方法 这个方法,顾名思义,是在Command被触发…
原文 关于WPF你应该知道的2000件事 以下列出了迄今为止为WPF博客所知的2,000件事所创建的所有帖子. 帖子总数= 1,201 动画 #7 - 基于属性的动画 #686 - 使用动画制作图像脉冲 #777 - 动画变换 #778 - 动画缩放变换 #779 - 动画旋转变换 #1,164 - 使用动画弹回控件 基本 #1 - 什么是WPF? #2 - 渲染层 #5 - 矢量图形和分辨率独立 #6 - WPF布局 #9 - 样式 #10 - 控制模板 #11 - 命令 #12 - 标记和代…
原文:整理:WPF中应用附加事件制作可以绑定命令的其他事件 目的:应用附加事件的方式定义可以绑定的事件,如MouseLeftButton.MouseDouble等等 一.定义属于Control的附加事件ControlAttachEvent类 /// <summary> 附加事件 </summary> public static class ControlAttachEvent { #region - 双击事件 - public static readonly DependencyP…