【发布时间】:2018-08-14 08:35:14
【问题描述】:
由于某种原因,在 EnterPressed 方法中 IsFiltered 属性设置为 true。一旦进入任务,该属性就会返回为假。一旦离开任务,它就会返回 true(然后在 Remove Progress 方法中返回 false)。
我错过了什么?有人可以提供一个链接或教程,可以为我指明正确的方向。
使用 C#、Caliburn Micro 和 VS2017。
public bool IsFiltering
{
get;
private set;
}
public bool ShowGrid
{
get
{
return !this.IsFiltering;
}
}
public void SetProgress()
{
this.IsFiltering = true;
NotifyOfPropertyChange("IsFiltering");
NotifyOfPropertyChange("ShowGrid");
}
public void EnterPressed()
{
SetProgress();
Task.Run(() =>
{
if (this.searchFilter != "")
{
var filtered = Expenses.Where(exp => exp.ExpenseDescription.StartsWith(searchFilter.ToUpper())).ToList();
var obsFiltered = new ObservableCollection<Models.Expense>(filtered);
this.transactionReader.Expenses = obsFiltered;
NotifyOfPropertyChange(() => Expenses);
}
Debug.WriteLine("EnterPressed called :: searchFilter is: " + this.searchFilter);
});
RemoveProgress();
}
【问题讨论】:
-
您是指
IsFiltering属性吗?你没有显示IsFiltered -
是的,我的意思是对不起
标签: c# .net multithreading task