我在WPF项目中有MainPage。此页面包含侧栏,我想在UserControl中移动它。但是这个侧边栏还有一些元素,例如Button
有click
个事件。在代码隐藏中,此事件与绑定到MainPage的viemModel相关。所以我不想将这个viewModel绑定到UserControl
。
我想做什么 - 将此事件传递给MainPage上的用户控件,然后此事件绑定到Button
中的UserControl
。
是可能做的还是坏的?感谢
例如:
SideBar有按钮:
<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);
}
答案 0 :(得分:0)
首先,最好不要使用后面的代码,尤其是不要使用点击事件。我建议在你的应用程序中使用MVVM模式这样你可以使用命令进行点击事件,这也可以在堆栈中冒泡。
您还可以在主页上分享ViewModel,也可以分享您的用户控件
答案 1 :(得分:0)
我同意Jordy,你应该在你的应用程序中实现一个MVVM模式。您可以查看MVVM Light https://mvvmlight.codeplex.com/或从nuget包管理器获取。使用MVVM Light,您将能够使用中继命令处理按钮单击事件,并能够在用户控件与其内置Messenger之间进行通信。