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', { ...
随机推荐
- css图片显示文字(上浮)
<html> <head lang="en"> <meta charset="UTF-8"> <title>&l ...
- Linux平台安装MongoDB(转)
一.下载完安装包,并解压 tgz(以下演示的是 64 位 Linux上的安装) . curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x ...
- 带实习生学Spring Boot 之 Spring Profiles
大家好,我是指北君. 最近公司新来了一个实习生,挺上进的,天天追着我问问题.指北君开启了带实习生打怪升级之路.吶,今天问了一个关于 Spring Profiles 的问题. 实习生:指北君,你知道 S ...
- STM32学习进程
新建一个自己的工程模板,以我所用的MDK4为例 MDK4软件图标 (1)新建一个自己储存数据的文件夹.以我自己为例(文件夹名字任取自己记住熟悉就行,以下将以我的文件夹文件进行操作讲解) 新建的总体文件 ...
- PYTHON 利用ImagePipeline专门爬取图片
自定义file_path()函数,即可以原有图像文件名为名来保存,并分类保存 def file_path(self, request, response=None, info=None): image ...
- C语言:预处理命令总结
预处理指令是以#号开头的代码行,# 号必须是该行除了任何空白字符外的第一个字符.# 后是指令关键字,在关键字和 # 号之间允许存在任意个数的空白字符,整行语句构成了一条预处理指令,该指令将在编译器进行 ...
- C语言:文本文件和二进制文件
学习了 fopen() 函数后,我们知道它的第二个参数是一个字符串,用来表示文件打开方式.如果字符串中出现b,则表示以二进制方式打开文件:如果字符串中出现t,或者两者都不出现,则表示以文本方式打开文件 ...
- 家庭账本开发day11
编写登录界面和个人信息查看界面 $.ajax({ url: "UserServlet?method=login",//url ...
- 【Tips】IDEA中自己常用的快捷键
在idea中自己常用的一些快捷键 alt + i; //向上: alt + k; //向下: alt + j; //向左: alt + l; //向右: alt + o; //移至行首: alt + ...
- Vue 可拖拽组件 Vue Smooth DnD 详解和应用演示
本文发布自 https://www.cnblogs.com/wenruo/p/15061907.html 转载请注明出处. 简介和 Demo 展示 最近需要有个拖拽列表的需求,发现一个简单好用的 Vu ...