<dxg:LookUpEdit
Name="searchLookUpEdit"
HorizontalAlignment="Stretch"
PopupHeight=""
PopupWidth=""
PopupMinHeight=""
PopupMinWidth=""
IsPopupAutoWidth="False"
FilterCondition = "StartsWith"
FindButtonPlacement = "Popup"
FindMode = "Always"
ShowSizeGrip = "True"
PopupContentTemplate="{StaticResource gridTemplate}"
ItemsSource="{Binding Path=PeopleInfoArray}"
AutoPopulateColumns="False"
DisplayMember="Name"
ValueMember="Id"
>
<dxg:LookUpEdit.StyleSettings>
<dxg:SearchLookUpEditStyleSettings />
</dxg:LookUpEdit.StyleSettings>
</dxg:LookUpEdit>

LookUpEdit

  <ControlTemplate x:Key="popupContentTemplate">
<dxg:GridControl x:Name="PART_GridControl" AutoExpandAllGroups="True">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Id" />
<dxg:GridColumn FieldName="PId" />
<dxg:GridColumn FieldName="Name" />
<dxg:GridColumn FieldName="BirthDate" />
<dxg:GridColumn FieldName="Age" Width="" FixedWidth="True" />
</dxg:GridControl.Columns>
<dxg:GridControl.View>
<dxg:TableView
Name="View"
ShowGroupedColumns="True"
AutoWidth="True"
AllowPerPixelScrolling="True"
ScrollAnimationDuration=""
ShowAutoFilterRow="True"
ShowTotalSummary="True"
IsSynchronizedWithCurrentItem="False">
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
</ControlTemplate>

ControlTemplate

 /// <summary>
/// LookupControl.xaml 的交互逻辑
/// </summary>
public partial class LookupControl : Window
{
public LookupControl()
{
InitializeComponent();
LookupControlViewModel viewModel = new LookupControlViewModel(); this.DataContext = viewModel;
}
}

LookupControl.xaml.cs

  /// <summary>
/// Lookup 控件ViewModel
/// </summary>
public class LookupControlViewModel : DxslViewModelBase
{
/// <summary>
/// 人员信息集合
/// </summary>
public ObservableCollection<PersonInfo> PeopleInfoArray { get; set; } public LookupControlViewModel()
{
PeopleInfoArray = Dxsl.InitDataBase.FackDataBaseLayer.GetPeopleFromDatabase();
}
}

LookupControlViewModel

 public class FackDataBaseLayer
{
/// <summary>
/// 获取人员信息
/// </summary>
/// <returns></returns>
public static ObservableCollection<PersonInfo> GetPeopleFromDatabase()
{
//Simulate database extaction
//For example from ADO DataSets or EF
return new ObservableCollection<PersonInfo>
{
new PersonInfo {Age= , Id= "", PId="", Address="北京市海淀区", Name="王爷爷" },
new PersonInfo {Age= , Id="", PId="", Address="北京市海淀区", Name="王父亲" },
new PersonInfo {Age= , Id="", PId="", Address="北京市海淀区", Name="王一" },
new PersonInfo {Age= , Id="",PId="", Address="北京市海淀区", Name="王二" },
new PersonInfo {Age= , Id="",PId="", Address="北京市海淀区", Name="王三" }
};
}
}

FackDataBaseLayer

  /// <summary>
/// 人员信息
/// </summary>
public class PersonInfo : DxslModelBase
{
#region 字段
private string _id;
private string _pId;
private string _name;
private int _age;
private string _address;
#endregion #region 属性
/// <summary>
/// 自增Id
/// </summary>
public string Id
{
get { return _id; }
set { _id = value; NotifyPropertyChanged("Id"); }
}
/// <summary>
/// 父级Id
/// </summary>
public string PId
{
get { return _pId; }
set { _pId = value; NotifyPropertyChanged("PId"); }
}
/// <summary>
/// 姓名
/// </summary>
public string Name
{
get { return _name; }
set { _name = value; NotifyPropertyChanged("Name"); }
}
/// <summary>
/// 年龄
/// </summary>
public int Age
{
get { return _age; }
set { _age = value; NotifyPropertyChanged("Age"); }
}
/// <summary>
/// 地址
/// </summary>
public string Address
{
get { return _address; }
set { _address = value; NotifyPropertyChanged("Address"); }
}
#endregion #region 构造函数
public PersonInfo()
{ }
#endregion #region 方法 #endregion
}

PersonInfo

  /// <summary>
/// Dxsl类model基类
/// </summary>
public class DxslModelBase : INotifyPropertyChanged
{
#region NotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// 属性通知
/// </summary>
/// <param name="property">属性名称</param>
public void NotifyPropertyChanged(string property)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(property));
}
#endregion
}

DxslModelBase

  public class DxslViewModelBase : INotifyPropertyChanged
{
#region NotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
/// <summary>
/// 属性通知
/// </summary>
/// <param name="property">属性名称</param>
public void NotifyPropertyChanged(string property)
{
if (this.PropertyChanged != null)
this.PropertyChanged(this, new PropertyChangedEventArgs(property));
}
#endregion
}

DxslViewModelBase

wpf LookUpEdit PopupContentTemplate的更多相关文章

  1. dx wpf的各种坑

    这篇随笔总结dx wpf使用中的各种坑,持续更新~ LookUpEdit里内嵌的DXGrid的名字必须是"PART_GridControl",不能不写.也不能写错.我对比了2个小时 ...

  2. 在WPF中使用依赖注入的方式创建视图

    在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...

  3. MVVM框架从WPF移植到UWP遇到的问题和解决方法

    MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...

  4. MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息

    MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...

  5. MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信

    MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...

  6. MVVM设计模式和WPF中的实现(四)事件绑定

    MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  7. MVVM模式解析和在WPF中的实现(三)命令绑定

    MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  8. MVVM模式和在WPF中的实现(二)数据绑定

    MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...

  9. MVVM模式和在WPF中的实现(一)MVVM模式简介

    MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...

随机推荐

  1. 【转】Windows 邮件槽(MailSlot)

    Windows 邮件槽(MailSlot) 来自<Windows网络编程第二版 中文版> 优点:通过网络,将一条消息广播给一台或多台计算机.   缺点:只允许从客户机到服务器,建立一种不可 ...

  2. paper:synthesizable finite state machine design techniques using the new systemverilog 3.0 enhancements 之 FSM Coding Goals

    1.the fsm coding style should be easily modifiable to change state encoding and FSM styles. FSM 的的 状 ...

  3. mysql Plugin ‘InnoDB’ init function returned error

    问题描述: 非正常关闭mysql,同时更改了my.cnf 导致启动时不支持innodb,出现如下错误:   [ERROR] Plugin ‘InnoDB’ init function returned ...

  4. 面试(手打手写,待更新loading...)

    1)JAVA基础面试 1,引用数据类型和基本数据类型的区别是什么? Byte 1 short 2 int 4 long 8 Boolean 1 char 2 float 4 double 8. 基本数 ...

  5. SQL_5_子句

    接下来讲到的子句有: WHERE STARTING WITH ORDER BY GROUP BY HAVING WHERE: 使用频率仅次于SELECT和FROM STARTING WITH: 附加于 ...

  6. 在alert里面加入一个页面,子页面传值父页面

    把easyDialog v2.0这个插件加入到了项目中,在做选择部门功能时运用这个插件,在easyDialog.open里面的content函数中套了一个iframe标签,把部门页面的地址放入到src ...

  7. 系统测试过程截获SQL方法

    1      摘要 测试过程中,经常会遇到莫名的各种问题,可能从开发同学的日志无法发现具体出现问题的原因,本着测试同学深入分析.定位问题的目的,经常需要一些额外的手段获得更多的错误异常信息. 我们涉及 ...

  8. Prolog&Epilog

    这篇博客会简单介绍一下Prolog&Epilog 然后再简单介绍下我对于程序在计算机中到底如何运行的一些理解(因为自己之前也从来没有接触过这些方面的知识,所以如果有讲的不对的地方希望大家能够帮 ...

  9. 光学字符识别OCR-7语言模型

    由于图像质量等原因,性能再好的识别模型,都会有识别错误的可能性,为了减少识别错误率,可以将识别问题跟统计语言模型结合起来,通过动态规划的方法给出最优的识别结果.这是改进OCR识别效果的重要方法之一. ...

  10. luogu2761 软件补丁问题

    状压最短路 #include <iostream> #include <cstring> #include <cstdio> #include <queue& ...