[英]Pass Event from Main Page to element in User Control
我在WPF項目中有MainPage。 此頁面包含側邊欄,我要在UserControl中移動它。 但是此邊欄還具有一些元素,例如具有click
事件的Button
。 在代碼背后,此事件與綁定到MainPage的viemModel有關。 所以我不想將此viewModel綁定到UserControl
。 我想做的是-將此事件傳遞給MainPage上的用戶控件,然后將此事件綁定到UserControl
Button
。
有可能做還是一個壞主意? 謝謝
例如 :
側邊欄具有按鈕:
<Button Grid.Column="1" Width="44" Height="44" Style="{StaticResource SearchBtn}" Click="Search_TextChanged" >
<Button.Content>
<Image Height="15" Width="15" Source="/Assets/icon-search.png"/>
</Button.Content>
</Button>
點擊事件與ViewModel
相關
private void Search_TextChanged(object sender, EventArgs e)
{
_resultViewModel.Search_TextChanged(tbSearch.Text);
}
首先,最好不要使用背后的代碼,尤其是不要使用click事件。 我建議在應用程序內部使用MVVM模式。這樣,您可以對click事件使用命令,這也可能在堆棧中冒出。
您還可以在主頁上共享ViewModel,也可以在用戶控件上共享
我同意Jordy的觀點,您應該在應用程序內部實現MVVM模式。 您可以查看MVVM Light https://mvvmlight.codeplex.com/或從nuget軟件包管理器中獲取。 使用MVVM Light,您將能夠使用“中繼命令”處理按鈕單擊事件,並能夠在用戶控件與其內置Messenger中進行通信。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.