当前位置:  开发笔记 > 编程语言 > 正文

带按钮的WPF列表框样式

如何解决《带按钮的WPF列表框样式》经验,为你挑选了2个好方法。

我有一个ListBox,它具有为Lis​​tBoxItems定义的样式.在这种风格中,我有一些标签和一个按钮.一个按钮,我想定义一个可以在我的页面(或任何使用该样式的页面)上处理的点击事件.如何在我的WPF页面上创建一个事件处理程序来处理我的ListBoxItems样式的事件?

这是我的风格(仅受影响的代码):


谢谢!



1> Arcturus..:

看看RoutedCommand.

在myclass中的某个地方定义你的命令,如下所示:

    public static readonly RoutedCommand Login = new RoutedCommand();

现在使用此命令定义您的按钮:

    

您可以使用CommandParameter获取额外信息.

现在最后但并非最不重要的是,开始听你的命令:

在这个类的构造函数中,你希望做一些不错的东西,你放置:

    CommandBindings.Add(new CommandBinding(myclass.Login, ExecuteLogin));

或者在XAML中:

   
        
   

并实现CommandBinding所需的委托:

    private void ExecuteLogin(object sender, ExecutedRoutedEventArgs e)
    {
          //Your code goes here... e has your parameter!
    }

您可以在可视树中的任何地方开始收听此命令!

希望这可以帮助

PS你也可以使用CanExecute委托定义CommandBinding,如果CanExecute这样说,它甚至会禁用你的命令:)

PPS这是另一个例子:WPF中的RoutedCommands



2> Matt Hamilto..:

正如Arcturus发布的那样,RoutedCommands是实现这一目标的好方法.但是,如果DataTemplate中只有一个按钮,那么这可能会更简单一些:

您实际上可以从主机ListBox处理任何按钮的Click事件,如下所示:


ListBox中包含的任何按钮都会在单击它们时触发该事件.在事件处理程序中,您可以使用e.OriginalSource获取对单击按钮的引用.

显然,如果你的ListBoxItems有多个按钮,这太简单了,但在很多情况下它工作得很好.

推荐阅读
谢谢巷议
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有