2016-02-05 35 views
0

我有一个主窗口,我想从另一个类更新进度条。出于某种原因,我得到异常:C#试图从另一个类中更新WPF中的进度条

错误CS1061“窗口”不包含定义 “UpdateProgressBar”,没有扩展方法“UpdateProgressBar” 接受型“窗口”的第一个参数可以发现(你 缺少using指令或程序集引用)

代码:

窗口:主窗口

> public void UpdateProgressBar(int input) 
>   { 
>    pBar.Value = input; 
> 
>   } 

private void btnSaveFile_Click(object sender, RoutedEventArgs e) 
    { 

     Thread newThread = new Thread(new ThreadStart(TaskManager.ReadDBWriteFile)); 
     newThread.Start(); 
     while(TaskManager.load<=TaskManager.loadMax) 
     { 
      TaskManager.stuff(this); 
     } 

    } 

类在我的进度设置:

public void stuff(System.Windows.Window a) 
     { 

      int up = load; 
      a.UpdateProgressBar(up); 

     } 

好像我犯了一个错误,当我尝试引用我MainWindows与System.Windows.Window一个,但我不能得到它的权利。也许你可以帮忙。

+1

你的函数“stuff”应该有一个MainWindow类型的参数,而不是一个Window – nkoniishvt

回答

1

似乎UpdateProgressBarMainWindow类的方法,而不是System.Windows.Window

即使MainWindow继承自Window,父类不知道其继承类型的具体方法!

所以stuff的论点(如果可以的话)应该是MainWindow a。或者也许你的代码应该重新组织,但是很难用你给的代码来说...

+0

我改变了对MainWindow的引用a。但是现在我得到了错误\t当我调用东西(this)时,非静态字段,方法或属性'TaskManager.stuff(MainWindow)'需要对象引用 – DerBenutzer

+0

那么?它更好吗? –

+0

这就是为什么我写道你的代码应该可能被重写......但是无法帮助你提供的代码示例。 –