0

我在这里寻求有关 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:“发布”功能是通过单击按钮执行的。我没有在这里写那个代码。我希望这对你来说不是问题。:-)

4

1 回答 1

3

在您post创建 new 的方法NdWindow中,witch 不是您要更改进度条值的窗口。

你应该以某种方式NdWindow上课Automator

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();
    }
}

或者您可以将 NdWindow 发送到您的post方法

public class Automator
{
   public static void Post(NdWindow ndWindow)
   {
       ndWindow.setprogress(10);
   }
}

public partial class NdWindow : Window
{
    private void button1_Click(object sender, RoutedEventArgs e)
    {
        Automator.Post(this);
    }
}
于 2012-12-24T09:43:41.947 回答