簡體   English   中英

C#WPF userControl將數據發送到mainWindow textBlock on ButtonClick

[英]C# WPF userControl to send data to mainWindow textBlock on buttonClick

我試圖創建一個使用按鈕(當前為用戶控件)創建的簡單屏幕小鍵盤,在這些按鈕上我有一個點擊事件,當我單擊/觸摸一個按鈕時,我希望將該按鈕的值發送到我的主窗口。

我無法/不理解如何使用戶控件(鍵盤)看到文本塊(在主窗口中)以添加所需的值。

我已經看到了使用命令綁定的解決方案和使用可視化樹遍歷的解決方案,但是它們都是訪問用戶控件的主窗口,而不是相反。

所有這些示例都是相反的,因為這應該是UserControl工作方式。

UserControl是打包的可重用功能。 它應該對使用它的代碼一無所知。

相反,您應該在UserControl公開路由事件,以選擇諸如“何時”號之類的內容,並在主窗口中對其進行訂閱。

有很多方法可以實現您想要的。 如果您的MainWindow.xaml具有UserControl並且您想對MainWindow.xaml.cs文件中控件的更改做出反應,則可以在UserControl代碼后面添加一個delegate ,並在MainWindow.xaml.cs為其注冊一個處理程序。 MainWindow.xaml.cs文件。 實現新的delegate通常比實現RoutedEvent更為簡單,這是您可以處理這種情況的另一種方法。

使用這樣的delegate將使您能夠有效地從后面的子UserControl代碼向主視圖傳遞信號,您可以以任何想要的方式對其進行響應。 除了在這里再次解釋整個故事之外,請從“ 在視圖模型之間傳遞參數”和“ 如何從其他視圖模型調用主視圖模型中的函數”中查看我的答案 在Stack Overflow上的此處發布有關如何實現此目標的完整詳細信息。

暫無
暫無

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

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