我的解決方案包含一個名爲Manager(帶有一個名爲ProductionManager的類)的庫以及一個WPF項目。 我希望ProductionManager類的一種方法可以訪問WPF的UIcontrol
,我該怎麼做?從單獨的類庫訪問UI控件
更具體地說,我的UI
有一個按鈕和一個TextBox
。按下按鈕,我從我的庫中調用一個方法,從中我想更新UI
窗口中的TextBox
。
我知道我應該使用Dispatcher
這樣做,但我不知道如何正確設置它。任何人都可以幫忙嗎?
這裏MainWindow.xaml:
<Window x:Class="WPFMainPanel.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Button Name="btnRun" Content="Run" HorizontalAlignment="Left" Margin="157,10,0,0" VerticalAlignment="Top" Width="75" Click="btnRun_Click"/>
<TextBox Name="tbox_Data" HorizontalAlignment="Left" Height="23" Margin="10,10,0,0" TextWrapping="Wrap" Text="TextBox" VerticalAlignment="Top" Width="120"/>
</Grid>
</Window>
這裏MainWindow.xaml.cs:
namespace WPFMainPanel
{
public partial class MainWindow : Window
{
private ProductionManager myManager = ProductionManager.Instance;
private void btnRun_Click(object sender, RoutedEventArgs e)
{
myManager.DoSomethingElse();
}
}
}
,在這裏我ProductionManager類我Manager庫
namespace Manager
{
public class ProductionManager
{
private static ProductionManager instance;
private ProductionManager() { }
public static ProductionManager Instance
{
get
{
if (instance == null)
{
instance = new ProductionManager();
}
return instance;
}
}
public void DoSomethingElse()
{
// Change the Text Box Named tbox_Data from here
}
}
}
任何人都可以幫助我嗎?
你喜歡什麼邏輯,以'Dosomethingelse'方法上工作,這是不好的做法,將在其他圖書館相關UI控件的邏輯。 –
嗨Hari在Dosomethingelse我勉強想要將textbox.Text屬性更改爲「Hello World」。底線我試圖通過這個簡單的應用程序來了解有關調度員的更多信息。坦克 – Luke
你可以這樣做,'公共無效Dosomethingelse(Button dobject){Dispatcher.Invoke((Action)(()=> dobject.Content =「Hello World」));}' –