我的应用程序中有一个包含几个按钮的数据模板。我希望在当前页面(我在许多页面中使用此模板)而不是在 Application.xaml.vb/cs 文件中触发这些按钮的偶数处理程序,因为我希望在每个页面上执行不同的操作。
我希望我很清楚。
我的应用程序中有一个包含几个按钮的数据模板。我希望在当前页面(我在许多页面中使用此模板)而不是在 Application.xaml.vb/cs 文件中触发这些按钮的偶数处理程序,因为我希望在每个页面上执行不同的操作。
我希望我很清楚。
您可以使用命令来实现这一点。Button
在DataTemplate
执行特定的 s 中有Command
s:
<Button Command="{x:Static MyCommands.SomeCommand}"/>
然后让每个使用该DataTemplate
处理的视图Command
:
<UserControl>
<UserCommand.CommandBindings>
<CommandBinding Command="{x:Static MyCommands.SomeCommand}"
Executed="_someHandler"/>
</UserCommand.CommandBindings>
</UserControl>
评论后编辑:ResourceDictionary
根据这些说明为您创建代码隐藏后,您可以简单地以通常的方式连接事件:
在MyResources.xaml
:
<ListBox x:Key="myListBoxResource" ItemSelected="_listBox_ItemSelected"/>
然后在MyResources.xaml.cs
:
private void _listBox_ItemSelected(object sender, EventArgs e)
{
...
}
如果您使用事件而不是命令,那么在您的Click
事件处理程序中只需编写
private void Button_Click(object sender, RoutedEventArgs e)
{
var dataItem = (FrameworkElement)sender).DataContext;
// process dataItem
}