簡體   English   中英

如何在另一個窗口上訪問控件

[英]How to access a control on another window

經過幾個小時的搜索,我需要一些幫助。

我有一個使用RibbonWindow類的WPF應用程序,其中包含一個主窗口和另一個窗口。 問題是我無法從第二個窗口訪問MainWindow上的控件(數據網格)。 第二個窗口稱為CanSubMessages(在類中)。 MainWindow繼承自RibbonWindow,而Window繼承自CanSubMessages。

我試圖實現的是從CanSubMessages窗口對MainWindow上的數據網格進行更新。 聽起來很簡單吧?

我從CanSubMessages執行以下操作:

Window rootWindow = Application.Current.MainWindow as Window;
rootWindow.CanDataGridMessagesCh1.Items.Refresh();

CanDataGridMessagesCh1是MainWindow中的數據網格。 它的名稱在相應的XAML中通過以下方式給出:

<DataGrid x:Name="CanDataGridMessagesCh1" AutoGenerateColumns="False" ...

我不明白為什么此控件不可訪問。 這是我得到的錯誤:

'System.Windows.Window'不包含'CanDataGridMessagesCh1'的定義,找不到擴展方法'CanDataGridMessagesCh1'接受類型為'System.Windows.Window'的第一個參數(是否缺少using指令或程序集引用?)

有人知道嗎?

這行是錯誤的:

Window rootWindow = Application.Current.MainWindow as Window; 

應該

Window rootWindow = Application.Current.MainWindow as MyWindowClass; 

編輯

一種替代解決方案是在子窗口中包含對主窗口的引用:

這是一個示例,假設您要從主窗口創建子窗口,並且已將主窗口類型添加到子窗口構造函數中

ChildWindow cw = new ChildWindow(this);

然后在您的子窗口中:

var mainwindow = this.MainWindow; // from the constructor

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM