[英]Changing content dynamically in WPF window from UserControl
我有兩個UserControls
,例如FirstUserControl
和SecondUserControl
。 在第一I設置FirstUserControl
在主窗口的幫助<ContentControl x:Name="contentControl" />
public MainWindow()
{
InitializeComponent();
this.contentControl.Content = new LoginControl();
}
但是,當用戶按下按鈕時,位於MainWindow中的FirstUserControl ContentControl
中的內容必須更改為SecondUserControl。 但這不會發生。 ContentControl仍為FirstUserControl。 可能是什么問題-我不知道。
這段代碼來自FirstUserControl:
private void loginButton_Click(object sender, RoutedEventArgs e)
{
MainWindow mainWindow = new MainWindow(new CheckInCheckOutControl());
}
而且它是MainWindow的負責人,它是負責ContentControl的:
public MainWindow(ContentControl contentControl)
{
this.contentControl.Content = contentControl;
}
我也嘗試過在MainWindow中對單獨的方法進行更改-但這沒有幫助。
MainWindow mainWindow = new MainWindow(new CheckInCheckOutControl());
創建MainWindow的新實例,而不是使用已經打開的MainWindow。 不要那樣做
MainWindow擁有FirstUserControl和SecondUserControl,因此應由MainWindow更改它們,而不是FirstUserControl。
在FirstUserControl中創建一個事件
public event EventHandler LoginClick;
private void loginButton_Click(object sender, RoutedEventArgs e)
{
if (LoginClick != null) LoginClick(this, e);
}
在擁有FirstUserControl實例的MainWindow中,訂閱該事件並更改內容:
public MainWindow()
{
InitializeComponent();
var loginControl = new LoginControl();
loginControl.LoginClick += (senser, e) =>
{
this.contentControl.Content = new CheckInCheckOutControl();
}
this.contentControl.Content = loginControl;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.