WPF 早APP.xaml中的style中的按钮事件怎么写

为了能再自定义控件用使用,我把选项卡的样式写在APP.xaml中,由此出现的问题是在模板中的按钮事件不好写了……贴代码字数超了……大家意会一下吧图上1是网上看的要写com... 为了能再自定义控件用使用,我把选项卡的样式写在APP.xaml中,由此出现的问题是在模板中的按钮事件不好写了……
贴代码字数超了……大家意会一下吧

图上 1是网上看的要写command 没看明白 也没成功,2是默认的方法 EventSetter 不过 运行报错了
这个style的目的是让Tab控件有个关闭按钮,现在要实现这个按钮的事件,如图

貌似只有通过Command来绑定了 但是 我不会
展开
 我来答
he123456dsa
2013-07-23
知道答主
回答量:9
采纳率:0%
帮助的人:3.6万
展开全部
可以写在外面的自己创建的类里面啊
自己写一个委托 代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Input;
class DelegateCommand : ICommand
{
public bool CanExecute(object parameter)
{
if (this.CanExecuteFunc == null)
{
return true;
}

return this.CanExecuteFunc(parameter);
}

public event EventHandler CanExecuteChanged;

public void Execute(object parameter)
{
if (this.ExecuteAction == null)
{
return;
}
this.ExecuteAction(parameter);
}
/// <summary>
/// 委托方法的实现
/// </summary>
public Action<object> ExecuteAction { get; set; }
public Func<object, bool> CanExecuteFunc { get; set; }

public DelegateCommand AddCommand { get; set; } ///定义委托
private void FuncName(object parameter) ///委托要执行的方法
{
//具体要做什么的代码。
}
public DelegateCommand()
{
this.AddCommand = new DelegateCommand();
this.AddCommand.ExecuteAction = new Action<object>(this.Add);
}
}

最后只需要在你的xaml的cs代码中添加:
this.DataContext = new DelegateCommand();

这样就可以在你的前台的command处绑定AddCommand了啊

希望对你有用!!!
追问
this.AddCommand.ExecuteAction = new Action(this.Add);

是什么意思 this下面有ADD吗?
追答
哦 这里的add()方法指的就是代码中的FuncName()的那个方法 ,add只是一个例子而已
Mickal小米
2013-07-23 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1774万
展开全部
command 是MVVM模式下用来做前台显示和后台逻辑分离的东东。在vm层编写逻辑,在view层通过绑定,传参数(cmmandParameter)给vm层来完成逻辑实现。
这里,需要更正的一个问题是,UserControl的样式应该是写在UserControl的Resource里的,而不是写在app里的 。
改变Template里的控件属性,一般用Triggers就可以实现。EventTrigger你可以在网上查阅下资料,看下如何使用。
更多追问追答
追问

新手,小白,第一次用WPF,各种东西还不清楚,但是写在哪里不是关键,我写的是选项卡的样式,自带的太丑了,我自己定义了样式以及模板,加上了关闭按钮如图

现在是要给这个按钮加事件,Trigger肯定是不行的,目前看来 就是要用command,但是 我不会用,求具体的用法

追答
那我可以跟你说trigger肯定行,你只是不会用。Command只会出现在MVVM模式下,不一定要用的。我写的技术博客里有篇关于TabControl的改造的,你可以看下。应该可以解决你的问题。
http://blog.sina.com.cn/s/blog_7f83849b01015hdg.html
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
leiyangbdwk
2013-07-23 · TA获得超过3295个赞
知道大有可为答主
回答量:4975
采纳率:12%
帮助的人:4383万
展开全部
初看你的代码不是很明白,只有截图也不便于大家调试,是否可以把代码发到你的百度空间,附带详细说明你的需求?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式