我試圖從另一個窗口訪問某些控件(ScrollViewer中和網格)。我嘗試這樣做:Application.Current.Windows.Cast <Window>()返回null
var reportW = Application.Current.Windows.Cast<Window>().SingleOrDefault(window => window is ReportWindow) as ReportWindow;
ScrollViewer myScrollViewer = reportW.testScrollViewer;
Grid myGrid = reportW.Grd;
問題是,reportW是百達null
。我的方法有問題嗎?還有其他方法可以從另一個窗口訪問控件嗎?
您的Windows都不是類型'ReportWindow'。請注意,這種模式的幾乎所有用途都是糟糕的設計。而不是通過所有打開的窗口找你應與窗戶之間更直接的關係來進行通信的給定類型的窗口。賠率是在像這樣的類型應該是返回一個值或觸發一個事件使得該窗口可以根據提供給它的信息更新自身的情況。 – Servy