WPF 早APP.xaml中的style中的按钮事件怎么写
为了能再自定义控件用使用,我把选项卡的样式写在APP.xaml中,由此出现的问题是在模板中的按钮事件不好写了……贴代码字数超了……大家意会一下吧图上1是网上看的要写com...
为了能再自定义控件用使用,我把选项卡的样式写在APP.xaml中,由此出现的问题是在模板中的按钮事件不好写了……
贴代码字数超了……大家意会一下吧
图上 1是网上看的要写command 没看明白 也没成功,2是默认的方法 EventSetter 不过 运行报错了
这个style的目的是让Tab控件有个关闭按钮,现在要实现这个按钮的事件,如图
貌似只有通过Command来绑定了 但是 我不会 展开
贴代码字数超了……大家意会一下吧
图上 1是网上看的要写command 没看明白 也没成功,2是默认的方法 EventSetter 不过 运行报错了
这个style的目的是让Tab控件有个关闭按钮,现在要实现这个按钮的事件,如图
貌似只有通过Command来绑定了 但是 我不会 展开
展开全部
可以写在外面的自己创建的类里面啊
自己写一个委托 代码如下:
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了啊
希望对你有用!!!
自己写一个委托 代码如下:
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只是一个例子而已
展开全部
command 是MVVM模式下用来做前台显示和后台逻辑分离的东东。在vm层编写逻辑,在view层通过绑定,传参数(cmmandParameter)给vm层来完成逻辑实现。
这里,需要更正的一个问题是,UserControl的样式应该是写在UserControl的Resource里的,而不是写在app里的 。
改变Template里的控件属性,一般用Triggers就可以实现。EventTrigger你可以在网上查阅下资料,看下如何使用。
这里,需要更正的一个问题是,UserControl的样式应该是写在UserControl的Resource里的,而不是写在app里的 。
改变Template里的控件属性,一般用Triggers就可以实现。EventTrigger你可以在网上查阅下资料,看下如何使用。
更多追问追答
追问
追答
那我可以跟你说trigger肯定行,你只是不会用。Command只会出现在MVVM模式下,不一定要用的。我写的技术博客里有篇关于TabControl的改造的,你可以看下。应该可以解决你的问题。
http://blog.sina.com.cn/s/blog_7f83849b01015hdg.html
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
初看你的代码不是很明白,只有截图也不便于大家调试,是否可以把代码发到你的百度空间,附带详细说明你的需求?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询