<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. 如何在 JavaScript 中更好地使用数组

    使用 Array.includes 替代 Array.indexOf “如果需要在数组中查找某个元素,请使用 Array.indexOf.” 我记得在我学习 JavaScript 的课程中有类似的这么 ...

  2. 【转】pDc->SelectObject(pOldBrush)恢复画刷

    请看下面的代码:  CDC *pDc=new CClientDC(this); CBrush brush; brush.CreateSolidBrush(RGB(0,255,0)); CBrush * ...

  3. C#_接口基础学习

    参考:https://www.cnblogs.com/hamburger/p/4681681.html

  4. 共享服务-FTP基础(一)

    介绍:文件传输协议FTP 两种模式:服务器角度 主动(PORT style):服务器主动连接 命令(控制):客户端:随机port --- 服务器:tcp21 数据:客户端:随机port ---服务 ...

  5. 【Spring】事务的实现方式

    1 初步理解 理解事务之前,先讲一个你日常生活中最常干的事:转账. 场景设定: 用户名 余额 A 1000 B 1000 操作: A通过支付宝给B转账200块,做这件事情会进行两个操作. 1:A账号- ...

  6. AHB 总线问答(转)

    AHB总线问答 http://blog.163.com/huanhuan_hdu/blog/static/1352981182011625916845/ 仲裁:主设备可以在一个突发传输中解除HLOCK ...

  7. manjaro kde netease-cloud-music 网易云音乐

  8. R-codes-tips

    1. 在shell执行R文件 chmod 0755 file.R Rscript file.R 2.  载入数据 data(dune) 3. attach() 将data.frame添加到R的搜索路径 ...

  9. Counting Cliques HDU - 5952 单向边dfs

    题目:题目链接 思路:这道题vj上Time limit:4000 ms,HDU上Time Limit: 8000/4000 MS (Java/Others),且不考虑oj测评机比现场赛慢很多,但10月 ...

  10. 水题:CF16C-Monitor

    Monitor 题目描述 Reca company makes monitors, the most popular of their models is AB999 with the screen ...