【问题标题】:C# - WPF - update progressbar from another classC# - WPF - 从另一个类更新进度条
【发布时间】:2012-12-24 09:35:12
【问题描述】:

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

【问题讨论】:

标签: c# wpf progress-bar


【解决方案1】:

在您的post 方法中,您创建新的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();
    }
}

或者您可以将 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);
    }
}

【讨论】:

    猜你喜欢
    • 2011-08-12
    • 2015-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-30
    相关资源
    最近更新 更多