C# - WPF - 从另一个类更新进度条

时间:2012-12-24 09:35:13

标签: c# wpf progress-bar

我在这里请求关于C#,特别是WPF的一些帮助。 :d

我有一个WPF项目,我需要从另一个类更新进度条的值。进度条在'NdWindow'类中,我需要从'Automator'类更新它的值。

我已经尝试了一些东西,但没有任何对我有用。

在'NdWindow'课程中:

public partial class NdWindow : Window
{
    public NdWindow()
    {
        InitializeComponent();
    }

    public NdWindow(int progress)
    {
        InitializeComponent();
        setprogress(progress);
    }

    public void setprogress(int progress)
    {
        this.progressBar.Value = progress;
        MessageBox.Show(Convert.ToString(progress));
    }

在“Automator”课程中:

public static void post()
{
    NdWindow test = new NdWindow();
    test.setprogress(10);
}

如果我运行程序,MessageBox会弹出并显示我在setprogress()中发送的值。 我也尝试在构造函数中发送值,但它没有帮助。

如果可以,请帮助我。 :d

谢谢!

PS:通过点击按钮执行'post'功能。我这里没有写过那段代码。我希望这对你来说不是问题。 : - )

1 个答案:

答案 0 :(得分:3)

在您创建新post的{​​{1}}方法中,女巫不是您想要更改进度条值的窗口。

你应该以某种方式在NdWindow课程中获得NdWindow

Automator

或者您可以将NdWindow发送到public class Automator { private NdWindow ndWindow; public Automator(NdWindow ndwindow) { this.ndWindow = ndwindow; } public void Post() { ndWindow.setprogress(10); } } public partial class NdWindow : Window { private Automator automator; public NdWindow() { InitializeComponent(); this.automator = new Automator(this); } private void button1_Click(object sender, RoutedEventArgs e) { Automator.Post(); } } 方法

post