簡體   English   中英

將事件從主頁傳遞到用戶控件中的元素

[英]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.

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