2

我的应用程序中有一个包含几个按钮的数据模板。我希望在当前页面(我在许多页面中使用此模板)而不是在 Application.xaml.vb/cs 文件中触发这些按钮的偶数处理程序,因为我希望在每个页面上执行不同的操作。

我希望我很清楚。

4

2 回答 2

2

您可以使用命令来实现这一点。ButtonDataTemplate执行特定的 s 中有Commands:

<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)
{
    ...
}
于 2009-03-30T13:56:56.937 回答
0

如果您使用事件而不是命令,那么在您的Click事件处理程序中只需编写

private void Button_Click(object sender, RoutedEventArgs e)
{
    var dataItem = (FrameworkElement)sender).DataContext;
    // process dataItem
}
于 2015-06-09T08:57:16.253 回答