我想創建一個簡單的屏幕鍵盤創建使用按鈕(當前是一個用戶控制),在這些按鈕我點擊事件,當我點擊/觸摸我想要一個按鈕的值發送到我的主窗口中的文本塊。C#WPF userControl發送數據到mainWindow textBlock的buttonClick
我不能/不明白如何讓用戶控制(鍵盤)看到文本塊(在主窗口)在我需要的增值。
我已經看到了使用命令綁定和使用的可視化樹遍歷解決方案,解決方案,但所有的人都訪問用戶的控制,而不是周圍的其他方式的主窗口。
我想創建一個簡單的屏幕鍵盤創建使用按鈕(當前是一個用戶控制),在這些按鈕我點擊事件,當我點擊/觸摸我想要一個按鈕的值發送到我的主窗口中的文本塊。C#WPF userControl發送數據到mainWindow textBlock的buttonClick
我不能/不明白如何讓用戶控制(鍵盤)看到文本塊(在主窗口)在我需要的增值。
我已經看到了使用命令綁定和使用的可視化樹遍歷解決方案,解決方案,但所有的人都訪問用戶的控制,而不是周圍的其他方式的主窗口。
所有的例子是周圍的其他方式,因爲這是一個UserControl
是如何工作的。
甲UserControl
是可重複使用的功能性的包裝件。它不應該知道使用它的代碼。
相反,你應該揭露路由事件在UserControl
的東西像一個被選擇號碼時,並訂閱它們在你的主窗口。
有很多方法可以實現你想要什麼。如果您的MainWindow.xaml
有UserControl
,並且您想對MainWindow.xaml.cs
文件中控件的更改作出反應,那麼您可以將delegate
添加到UserControl
後面的代碼中,並在MainWindow.xaml.cs
文件中爲其註冊處理程序。實施新的delegate
通常比實施RoutedEvent
簡單一些,這是您可以處理這種情況的另一種方式。
使用這樣的delegate
可以使您有效地將信號傳遞到子代碼UserControl
後面的主視圖,您可以用任何您想要的方式對其進行反應。不要在這裏再次解釋整個故事,請參閱Stack Overflow上Passing parameters between viewmodels和How to call functions in a main view model from other view models?的帖子,瞭解有關如何實現此目的的完整詳細信息。
那麼,一個辦法是暴露在控制的屬性,並綁定你的文本塊中的主窗口,以該財產。在點擊按鈕時更改屬性的值。雖然可能有更好的解決方案。 – rmagon