随笔分类 - WPF
摘要:场景 多个DataGrid,每个Datagrid拥有右键菜单功能及数据拖动功能,会出现界面假死情况,如下图所示,第三步骤点击DataGrid one时将不会有任何反应,使用snoop查看事件发现,第二步操作后,DataGrid Two就没有释放鼠标捕捉 操作步骤 为了方便,直接上图,共三个步骤,如下
阅读全文
摘要:这三种类都是用来扩展现有控件的行为。使用时需要引用System.Windows.Interactivity.dll。 Behavior及TriggerAction都是用来扩展自身行为,而TargetdTriggerAction则是根据自身行为扩展目标行为。 一个简单的使用例子如下(参见 http:/
阅读全文
摘要:这里实现了一个简单的TextBlock的AutoTooltip,Code as Follow:
阅读全文
摘要:场景 :实际应用该控件时,遇到了一个问题,当下拉选择一项后,ComboBox.Text即为选择的值,若此时ComboBox所绑定的集合更改,不包含上此选择的项,ComboBox.Text值将会清空,但有这样的场景不需要清空。 解决方案 :查看源码了解到事件的触发顺序是下面这样。 ItemChange
阅读全文
摘要:1. Xaml中添加后台代码 2. Binding中的显示更新到源或UI 3. 获取某一依赖属性的binding 4. StringFormat使用 没有特殊文本时,需要添加额外的大括号:StringFormat= {}{0 : MMdd} 5. 字符渲染 http://www.wpf tutori
阅读全文
摘要:使用WPF的过程中,设计界面常会用到几种模板,如ControlTemplate, ItemsPanelTemplate 和 DataTemplate, 在这里对每一个介绍一番。 ControlTemplate 说明:用以控件控件的外观,如下代码就是用来设计一个自定义的按钮样式。 <Style Tar
阅读全文
摘要:DataGrid绑定的后台数据源,对于数据源更新的情况,如,某些数据的某些字段需要更新,若直接列改旧数据源A为新的数据源的源B,显示的数据没有问题,但有一个问题就是界面的原先的选择项,多选或单选,便不会保持,针对需要保持多选项的情况,有以下两种方案: 1 筛选出需要更新的项,并不移除,只需要挨个对其
阅读全文
摘要:背景:在项目中遇到了这样的问题,使用的DataGrid需要默认选中第一条数据,即数据加载后,无需用户点击,即可默认选中一项,并且,DataGrid支持筛选操作,需要完成这样的功能,数据源中的数据项的某些属性更新时,需要刷新UI,并且需要保持当前的多选项。 问题:上面的背景中提到了两个问题,一是需要默
阅读全文
摘要:自定义路由事件// Register the routed eventpublic static readonly RoutedEvent SelectedEvent = EventManager.RegisterRoutedEvent( "Selected", RoutingStrateg...
阅读全文
摘要:来源:http://www.snippetsource.net/Snippet/20/define-a-custom-dependencyproperty获取对象附加属性public IEnumerable GetAttachedProperties(DependencyObject eleme...
阅读全文
摘要:操作DataGrid中,鼠标点击选中与后台选中有点不一样,鼠标点击选中时,再按shift or Ctrl +左键会原有鼠标选中状态会保持,而后台选中再按shift or Ctrl +左键却不会保持,查看源码了解到鼠标点击选中与后台设置选中项有一个私有变量的值不同,该变量为_selectionAn...
阅读全文
摘要:在DataGrid的应用中,有一种场景是需要保持DataGrid上的多选项,然而在执行了View.Refresh方法后,DataGrid的选中项将不会保持,因此需要后台设置DataGrid的多选项,DataGrid提供的接口只能通过DataGrid.SelectedItems.Add方法一条一条...
阅读全文
摘要:在WPF中,CollectionViewSource是一个经常用到的集合类型,主要用于对后台数据排序,条件筛选或分组操作。 场景:当需要筛选包含“test”的数据项时,我们会分步输入搜索条件,依次为“t”、“te”、“tes”,而最后是“test”,而我们简单的处理经常会是在Textbox的Tex...
阅读全文

浙公网安备 33010602011771号