WPF本身就是一个数据驱动的编程方式,所以在WPF中绑定是一个非常常见的手段,去用于前后台之间的数据和命令的交互。
对于WPF中的一个Button按钮的绑定方式,现总结如下:
首先看一下代码:
2.后台代码:
(2)View中的CS代码:
对于WPF中的一个Button按钮的绑定方式,现总结如下:
首先看一下代码:
1.前台代码:
<Button Content="?" Grid.Column="1">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<cmd:EventToCommand Command="{Binding StringArgCommand}" CommandParameter="Dqdm2"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
2.后台代码:
(1)ViewModel中的代码:
#region 命令
private RelayCommand<string> _stringArgCommand;
/// <summary>
/// command args 是ê?字×?符·?串′?类àà型Dí的μ?命ü令á?
/// </summary>
public RelayCommand<string> StringArgCommand
{
get { return _stringArgCommand; }
set { _stringArgCommand = value; }
}
#endregion
//构造函数
public SnfxbViewModel_2015()
{
Init();
StringArgCommand = new RelayCommand<string>(StringArgCommandExecute);
}
#region 事件
public event Action<string> StringArgCommandHandler;
#endregion
private void StringArgCommandExecute(string args)
{
if (StringArgCommandHandler != null)
StringArgCommandHandler(args);
}
(2)View中的CS代码:
public Snfxb_2015()
{
InitializeComponent();
Init();
_viewModel.StringArgCommandHandler -= new Action<string>(OnStringArgCommandHandler);
_viewModel.StringArgCommandHandler += new Action<string>(OnStringArgCommandHandler);
}
private void OnStringArgCommandHandler(string args)
{
try
{
switch (args)
{
case "Dqdm2":
break;
case "Dqdm3":
break;
}
}
catch (Exception ex)
{
throw();
}
}
以上就是整个绑定过程的代码了,跟着代码走一下,不难理清他们之间的逻
辑关系。基本上就是通过将CS中的方法一层层的委托给了ViewModel中的方法,以实现
ViewModel中的数据和前台界面中的数据的交互。接下来用一副不太恰当的纯笔者手工画
的图来表达一下其中的逻辑关系:
总结:之前总觉着绑定是一个非常难懂的知识,但是跟着代码仔细的走下来,发
现其实绑定就是委托的一个应用实例。笔者新手一枚,如果有更好的见解,还望大神留
下您的宝贵意见!