我有一個問題,一直在困擾着我好幾天,我試過每一個選項,現在我發佈了自己的問題,以找到你們的一些具體幫助。在MainWindow的代碼塊開始更新TextBlock異步
我需要在代碼塊的開始更新一個TextBlock,它是在一個簡單的按鈕單擊運行。
這裏是我的代碼:
private void NewProject(bool blnCopy = false, string strFileName = null)
{
if (App.ApplicationBusy == false)
{
App.ApplicationBusy = true;
try
{
Action action = delegate()
{
Cursor = Cursors.Wait;
lblStatus.Text = "Opening Project...";
};
Dispatcher.Invoke(DispatcherPriority.Send, action);
if (blnCopy == false) { Project = new GSProject((App.RecentProjectCount + 1)); }
if (Project != null)
{
Projects.Add(Project);
if (blnCopy == false)
{
if (strFileName == null)
{
Project.ProjectName = string.Format("GSProject{0}", Projects.Count.ToString());
Project.ProjectDescription = string.Format("{0} - HW GS Project", Project.ProjectName);
Project.LoadResource();
}
else
{
Project.Load(strFileName);
}
}
else
{
Project = Project.Copy();
}
p_objNewPane = objDocker.AddDocument(Project.ProjectDisplayName, Project);
if (p_objNewPane != null)
{
p_objNewPane.DataContext = Project;
BindingOperations.SetBinding(p_objNewPane, ContentPane.HeaderProperty, new Binding("ProjectDisplayName") { Source = Project });
p_objNewPane.Closing += new EventHandler<PaneClosingEventArgs>(ContentPane_Closing);
}
if (Project.CalculationExists == true)
{
InitializeCalculation(true);
}
}
tabStartPage.Visibility = Visibility.Collapsed;
objDocumentTabs.SelectedIndex = 0;
}
catch (Exception ex)
{
ModernDialog.ShowMessage(string.Format("An error has occurred:{0}{0}{1}", Environment.NewLine, ex.Message), "Error", MessageBoxButton.OK, Application.Current.MainWindow);
}
finally
{
App.ApplicationBusy = false;
Cursor = Cursors.Arrow;
AppStatus = "Ready";
p_objNewPane = null;
}
}
}
在try塊的開始,我需要更新的TextBlock(lblStatus)說這是怎麼回事。 void本身NewProject位於MainWindow上,並通過按鈕單擊來調用。
有人能給我一個我要去哪裏錯的想法嗎?我已經嘗試了無數的潛在解決方案,所以如果我回復你說我已經嘗試過了,請不要被冒犯。
問候,湯姆。
你還沒有說過什麼問題,只是說你想更新一個TextBox ..? –
對不起,問題是TextBlock根本沒有更新。它只是說「準備好」(在MainWindow的加載時設置)。 –