<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. 头文件string与string.h的区别

    在C++中,#include<iostream>与#include<iostream.h>的区别,前者要使用更新的编译器(其实大部分编译器多比较前卫了,出了有些搞嵌入式的用变态 ...

  2. 【MySql】Mysql ERROR 1067: Invalid default value for ‘date’ 解决

    在给一个表添加字段的时候,忽然发现会报一个date类型的字段的默认值错误,郁闷~ 经过排查,原来是MySQL的配置问题,在wamp下,MySQL 5.7里是没有设置 SQL_MODE 的. 1.my. ...

  3. 【Git版本控制】git中reset命令的详解

    git reset 命令详解(一) git reset 命令详解(二) reset命令的语法:git reset [选项]  [版本号]  [要回退的目标] 选项:--soft仅将head指针指向历史 ...

  4. JFinal 结合Dubbo发生的一些问题

    1.java.lang.NoSuchMethodError: org.jboss.resteasy.specimpl.BuiltResponse.getHeaders()Ljavax/ws/rs/co ...

  5. 安装VS2010 无法打开数据文件deffactory.dat

    VS2010旗舰版可用Key: YCFHQ9DWCYDKV88T2TMHG7BHP 解压VS2010安装ISO文件,找到setup\deffactory.dat文件,用记事本打开,将里面内容清空,将以 ...

  6. hdu 6312

    Problem Description Alice and Bob are playing a game.The game is played on a set of positive integer ...

  7. Persona5

    65536K   Persona5 is a famous video game. In the game, you are going to build relationship with your ...

  8. poj 2251 三维地图最短路径问题 bfs算法

    题意:给你一个三维地图,然后让你走出去,找到最短路径. 思路:bfs 每个坐标的表示为 x,y,z并且每个点都需要加上时间 t struct node{ int x, y, z; int t;}; b ...

  9. SpringMVC之Controller简单使用

    //环境 spring-4.3.18/JDK1.8/开发工具/IntelliJ IDEA 2018.2.5 x64 //工程结构图 //web.xml <?xml version="1 ...

  10. python for data analysis chapter1~2

    Q1:numpy与series的区别:index Tab补全(任意路径Tab) 内省(函数:?显示文档字符串,??显示源代码:结合通配符:np.* load *?) %load .py ctrl-c( ...