1
我有一個簡單的TreeView,當點擊TreeView項我只需要加載一個文本文件讀取文件異步還是塊的UI
下面是代碼:
private async void NotesTreeView_OnSelectedItemChanged(object sender, RoutedPropertyChangedEventArgs<object> e)
{
var clickedModel = e.NewValue as TreeFileItem;
if (clickedModel != null && File.Exists(clickedModel.FilePath))
{
_viewModel.NoteLoadingInProgress = true;
using (var reader = File.OpenText(clickedModel.FilePath))
{
var fileContent = await reader.ReadToEndAsync();
_viewModel.ActiveNote = fileContent;
}
_viewModel.NoteLoadingInProgress = false;
}
}
這個工作,但是當我點擊在treeview項目上,ui被凍結,直到文件讀取完成。爲什麼這樣的行爲我在我的代碼中有其他異步方法,他們不阻止用戶界面。
編輯:似乎沒有問題,在閱讀文件,但在設置大量的文本通過數據綁定textbox.text properti,雖然設置它直接還採取了很多的時間,使UI凍結
感謝您的回答,不幸的是,TextBox不在控件列表中,支持UI虛擬化 – igorGIS
@igorGIS:那麼您將不得不建立自己的虛擬化系統,或使用支持虛擬化的文本顯示器(IIRC有某種文件系統)。 –