wpf LookUpEdit PopupContentTemplate
<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的更多相关文章
- dx wpf的各种坑
这篇随笔总结dx wpf使用中的各种坑,持续更新~ LookUpEdit里内嵌的DXGrid的名字必须是"PART_GridControl",不能不写.也不能写错.我对比了2个小时 ...
- 在WPF中使用依赖注入的方式创建视图
在WPF中使用依赖注入的方式创建视图 0x00 问题的产生 互联网时代桌面开发真是越来越少了,很多应用都转到了浏览器端和移动智能终端,相应的软件开发上的新技术应用到桌面开发的文章也很少.我之前主要做W ...
- MVVM框架从WPF移植到UWP遇到的问题和解决方法
MVVM框架从WPF移植到UWP遇到的问题和解决方法 0x00 起因 这几天开始学习UWP了,之前有WPF经验,所以总体感觉还可以,看了一些基础概念和主题,写了几个测试程序,突然想起来了前一段时间在W ...
- MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息
MVVM模式解析和在WPF中的实现(六) 用依赖注入的方式配置ViewModel并注册消息 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二 ...
- MVVM模式解析和在WPF中的实现(五)View和ViewModel的通信
MVVM模式解析和在WPF中的实现(五) View和ViewModel的通信 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 M ...
- MVVM设计模式和WPF中的实现(四)事件绑定
MVVM设计模式和在WPF中的实现(四) 事件绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式解析和在WPF中的实现(三)命令绑定
MVVM模式解析和在WPF中的实现(三) 命令绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式和在WPF中的实现(二)数据绑定
MVVM模式解析和在WPF中的实现(二) 数据绑定 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在WPF中 ...
- MVVM模式和在WPF中的实现(一)MVVM模式简介
MVVM模式解析和在WPF中的实现(一) MVVM模式简介 系列目录: MVVM模式解析和在WPF中的实现(一)MVVM模式简介 MVVM模式解析和在WPF中的实现(二)数据绑定 MVVM模式解析和在 ...
随机推荐
- Mysql数据库插入中文出现乱码相关
查看数据库编码的命令:show variables like "character%"; mysql> show variables like "character ...
- Centos7系统下安装Docker
1.确定你的Linux系统是Centos7 命令:cat /etc/redhat-release 2.yum安装gcc相关 1.配置好Centos7能上外网. 2.yum -y install gcc ...
- Ubuntu 开机启动不执行
解决方案: 1.将/etc/rc.local的命令改成更加兼容的模式,将"#!/bin/sh"改为"#!/bin/bash" 2.将/bin/sh重新链接到/b ...
- vue使用原生js实现滚动页面跟踪导航高亮
需要使用vue做一个专题页面. 滚动页面指定区域导航高亮. BetterScroll:可能是目前最好用的移动端滚动插件 如何自定义CSS滚动条的样式? 监听滚动页面事件,对比当前页面的位置与元素的位置 ...
- R-codes-tips
1. 在shell执行R文件 chmod 0755 file.R Rscript file.R 2. 载入数据 data(dune) 3. attach() 将data.frame添加到R的搜索路径 ...
- (转)JVM各种内存溢出是否产生dump
对于java的内存溢出,如果配置-XX:+HeapDumpOnOutOfMemoryError,很明确的知道堆内存溢出时会生成dump文件.但永久代内存溢出不明确是否会生成,今天来做一个实验: 永久代 ...
- SQL_1_简介
了解一门语言,还是应该从名字开始.SQL中的S即Structured(结构),L即Language(语言),Q即Query(查询),但不仅仅只是查询,还可以建立数据库,添加和删除数据,对数据作联合,当 ...
- Linux网络编程:客户端/服务器的简单实现
一. Socket的基本知识 1. socket功能 Socket层次 Socket实质上提供了进程通信的端点,进程通信之前,双方必须首先各自创建一个端点,否则是没有办法建立联系并相互通信的. 每一个 ...
- JBuilder生成Exe
首先保证工程可以通过绿箭头执行 然后在File菜单中选择New,先建立Archive下的Application 接下来的界面中大部分可以直接选择“Next”,除了下面的第3步,会询问是否需要将工程引用 ...
- 关于ios 和 android 录音(语音)对聊文件格式问题
关于ios 和 android 录音(语音)对聊文件格式问题 在做语音对讲的时候,将会碰到录制语音格式的问题,这些需要跨平台我们可能需要使用双方平台都支持的格式,或者执行编码转换 解决方式如下: wa ...