MaterialDesign Or ComboBox 联动查询
<ComboBox Width="200" Height="30" x:Name="ComboxName" Text="{Binding CboxText,Mode=TwoWay}" ItemsSource="{Binding TenantsModel}" SelectedItem="{Binding Model}" DisplayMemberPath="name" IsEditable="True" materialDesign:HintAssist.Hint="{Binding QueryNmae}" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged">
<i:InvokeCommandAction Command="{Binding QueryTenantsCommand}" CommandParameter="{Binding ElementName=ComboxName}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</ComboBox>
后台代码
public class GetTenants
{
public string tenancyName { get; set; }
public string name { get; set; }
public string editionDisplayName { get; set; }
public string connectionString { get; set; }
public string isActive { get; set; }
public string creationTime { get; set; }
public string subscriptionEndDateUtc { get; set; }
public string editionId { get; set; }
public string isInTrialPeriod { get; set; } public string id { get; set; }
}
public class MainViewModel : ViewModelBase
{ private ObservableCollection<GetTenants> _TenantsModel; public ObservableCollection<GetTenants> TenantsModel
{
get { return _TenantsModel; }
set { _TenantsModel = value;RaisePropertyChanged(); }
} private string userName = string.Empty;
private string passWord = string.Empty;
public static string Token = string.Empty;
public string Password
{
get { return passWord; }
set { passWord = value; RaisePropertyChanged(); }
}
public string UserName
{
get { return userName; }
set { userName = value; RaisePropertyChanged(); }
} private GetTenants _Model; public GetTenants Model
{
get { return _Model; }
set { _Model = value;RaisePropertyChanged();
}
} private string _CboxText; public string CboxText
{
get { return _CboxText; }
set { _CboxText = value;RaisePropertyChanged(); QueryTenantsList(value); }
}
private string _QueryNmae; public string QueryNmae
{
get { return _QueryNmae; }
set { _QueryNmae = value; RaisePropertyChanged(); }
} public RelayCommand<object> QueryTenantsCommand { get; set; }
public RelayCommand Close { get; set; } public RelayCommand Logasync { get; private set; } public MainViewModel()
{
QueryTenantsCommand = new RelayCommand<object>((o) => SelectModel(o));
TenantsModel = new ObservableCollection<GetTenants>();
Close = new RelayCommand(()=> ApplicationShutdown());
Logasync = new RelayCommand(()=>LogCommand());
} private async void LogCommand()
{
if (string.IsNullOrEmpty(UserName) && string.IsNullOrEmpty(Password)) return;
JObject jObjects = new JObject();
jObjects["userNameOrEmailAddress"] = UserName;
jObjects["password"] = Password;
var LoginTask = QueryOrUpdateHttp.LoginAsync("http://47.106.71.73:5000/api/TokenAuth/Authenticate", jObjects);
var timeouttask = Task.Delay(3000);
var completedTask = await Task.WhenAny(LoginTask, timeouttask);
if (completedTask == timeouttask) return;
var jObject = JObject.Parse(LoginTask.Result.ToString());
if (string.IsNullOrEmpty(jObject.ToString()) || !string.IsNullOrEmpty(jObject["error"].ToString())) return;
Token = jObject["result"]["accessToken"].ToString();
if (string.IsNullOrEmpty(Token)) return;
} public void ApplicationShutdown()
{
Messenger.Default.Send("", "ApplicationShutdown");
} private void SelectModel(object o)
{
GetTenants combo = (o as ComboBox).SelectedItem as GetTenants;
if (combo == null) return; QueryNmae = combo.name.Trim(); } public static ObservableCollection<T> DeserializeJsonToList<T>(string json) where T : class
{
JsonSerializer serializer = new JsonSerializer();
using (StringReader sr = new StringReader(json))
{
object o = serializer.Deserialize(new JsonTextReader(sr), typeof(ObservableCollection<T>));
ObservableCollection<T> list = o as ObservableCollection<T>;
return list;
} }
private async void QueryTenantsList(string value)
{
if (string.IsNullOrEmpty(value)) return;
GetTenants loadValue = new GetTenants() { id="1", name="正在加载...."};
TenantsModel.Add( loadValue);
string result = await QueryOrUpdateHttp.GetTenantId("/api/services/app/Tenant/GetTenants?Filter=" + CboxText);
var JResult = JObject.Parse(result); if (bool.Parse(JResult["success"].ToString()))
{
var results = JResult["result"]["items"].ToString();
TenantsModel.Clear(); TenantsModel = DeserializeJsonToList<GetTenants>(results); }
else
{
MessageBox.Show("没有改公司名称");
}
} }
MaterialDesign Or ComboBox 联动查询的更多相关文章
- 【EasyUI】combotree和combobox模糊查询
这里说的模糊查询指在输入框输入,然后自动在下拉框中显示匹配结果,类似Google搜索提示 EasyUI库已经实现了combobox的查询过滤功能,但只能从头匹配,原因是EasyUI库的代码限制: fi ...
- Winform如何实现ComboBox模糊查询
最近朋友问了一个关于Winform实现ComboBox模糊查询的知识点,自己好久没有搞Winform了,就上手练了一下,废话不多说,进入正题. 前台设计: 前台就是一个简单的Form窗体+一个Comb ...
- Java Swing应用程序 JComboBox下拉框联动查询
在web项目中,通过下拉框.JQuery和ajax可以实现下拉框联动查询. 譬如说,当你查询某个地方时,页面上有:省份:<下拉框省份> 市区:<下拉框市区> 县乡:<下拉 ...
- vs2013+MVC3.0+EasyUI的ComboBox联动使用(二)
vs2013+MVC3.0+EasyUI的ComboBox联动使用(二) 简单介绍:在vs2013(.net4.0)中使用MVC3.0对于EasyUI中ComboBox的联动使用. 载入Comb ...
- Extjs4 Combobox 联动始终出现loading错误的解决的方法
当反复选者combobox 联动时,下级的Combobox 会出现loading的错误表现形式,尽管Store数据已载入完也是一样. 废话少说贴代码就知道怎样处理了:(注意红色部分的关键语句) }, ...
- C# Combobox联动
接上一篇博文,对界面做一个小修改,做4个combobox,形成窗口之间的联动: 界面如下: 选择combobox里的条件,单击查询获取数据 首先连接数据库,获取到数据到第一个combobox里,代码在 ...
- Ajax省市区无刷新单表联动查询
方法一: 在很多时候都需要用到无刷新级联查询,本文将以省市区的级联查询作为例子.注:此为单表三级联动 环境:Vistual Studio 2015 .MSSQL 1.首先下载AjaxControlTo ...
- Ajax案例:三级联动查询员工的信息(三张表进行内连接)
需求分析: 通过数据库连接池,可以查询到数据库中员工的各种信息,通过点击下拉框的方式实现三级联动,即:没有点击city下拉框,后面两个下拉框中没有值,这样,点击city下拉框,department下拉 ...
- Ext 4.2以后版本 ComboBox 联动
//combox树 ComboTree: function (upDep, empStore) { var com = Ext.create('Ext.ux.desktop.ComboTree', { ...
随机推荐
- hugegraph 源码解读 —— 索引与查询优化分析
为什么要有索引 gremlin 其实是一个逐级过滤的运行机制,比如下面的一个简单的gremlin查询语句: g.V().hasLabel("label").has("pr ...
- mqtt 集成
-- 在pom.xml导入依赖 <!-- mqtt --> <dependency> <groupId>org.springframework.boot</g ...
- XCTF reverse maze
一.查壳 二.拖入ida64,静态调试,找到主函数F5反编译 二.1 思路分析(逆向是真的费时间,每个函数都要分析过去): 1.发现每个if最终都会进入LABEL-15 点进去,看看这个函数是干啥的. ...
- Jmeter之代理元件&代理配置
一 jmeter代理服务器添加及网页代理配置 1.1 打开jmeter,添加代理HTTP代理服务器,再添加一个线程组,放在代理服务器的下面. 1.2 代理服务器设置 端口默认8888,目标控制器选择t ...
- Django基础-04篇 Django开发前后端联动
1. 写views views.py代码块 1.在前端以/article/{{ article.id }}这种方式请求后台, 参数配置在urls.py中path('category/<int:i ...
- 『与善仁』Appium基础 — 2、常用Android模拟器的安装
目录 1.Android Virtual Devices模拟器 2.Genymotion模拟器 (1)Genymotion模拟器下载 (2)模拟器Genymotion安装 (3)Genymotion模 ...
- 论文阅读:LIC-Fusion: LiDAR-Inertial-Camera Odometry
本文提出了一种紧耦合的多传感器(雷达-惯导-相机)融合算法,将IMU测量.稀疏视觉特征.提取的激光点融合.提出的算法在时间和空间上对三个异步传感器进行在线校准,补偿校准发生的变化.贡献在于将检测和追踪 ...
- python -- 面向对象编程(属性、方法)
一.属性 对象的属性(attribute)也叫做数据成员(data member). 如果想指向某个对象的属性,可以使用格式: object.attribute 属性又分为:私有属性和公有属性. 私有 ...
- web自动化测试(2):选择selenium优势?与PhantomJS/QTP/Monkey对比
上篇 <web自动化测试(1):再谈UI发展史与UI.功能自动化测试>,自动化测试工具众多, PC端常用的功能自动化测试工具 Selenium:开源工具集,用于回归功能测试或者系统用例说明 ...
- 第十二篇 -- QMainWindow与QAction(剪切-复制-粘贴)
效果图: 按照上一节的方法,将剪切-复制-粘贴图标放置到工具栏后,为其指定槽函数.这些功能无需自己编写代码来实现,QPlainTextEdit提供了实现这些编辑功能的槽函数,如cut().copy() ...