您现在的位置是:主页 > news > 传奇手游网站/西安关键字优化哪家好
传奇手游网站/西安关键字优化哪家好
admin2025/5/14 1:41:07【news】
简介传奇手游网站,西安关键字优化哪家好,扬中疫情最新公告,商城网站开发公司排名我收到邀请大概是13号,现在半个月过去了,你应该是实现了吧。首先要明白什么是绑定其次要明白什么是命令模式(23种设计模式之一)最后要明白什么是MVVM以上,先不说复杂的原理,仅从实践的角度去学习(仅为实现mvvm)。简单的绑定modelc…
我收到邀请大概是13号,现在半个月过去了,你应该是实现了吧。
首先要明白什么是绑定
其次要明白什么是命令模式(23种设计模式之一)
最后要明白什么是MVVM
以上,先不说复杂的原理,仅从实践的角度去学习(仅为实现mvvm)。
简单的绑定
model
class BingModel
{
private string _Context;
public string Context
{
get => _Context;
set => _Context = value;
}
public BingModel()
{
Context = "Click Me";
}
}
xaml
那么命令模式呢?
我就不上代码了,给个链接,你可以先简单的实现一边C#设计模式系列:命令模式(Command) - libingql - 博客园www.cnblogs.com
你要明白,命令模式是可以让执行者和命令者分开的手段。
我们在WPF中可以使用内置Icommand接口, 继承接口编写适当类即可。
大部分的控件也是继承 ICommandSource接口,所以只要编写好命令类后绑定。
所以
class ViewModelCommand : ICommand
{
private Action DoExcute;
private Func CanExcute;
public ViewModelCommand(Action doexcute, Func canexcute)
{
DoExcute = doexcute;
CanExcute = canexcute;
}
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return CanExcute?.Invoke(parameter)??false;
}
public void Execute(object parameter)
{
DoExcute?.Invoke(parameter);
}
}
最后什么是MVVM,
简单来说Model-View-ViewModel。
翻译成人话:
我不关心界面,我只在乎数据,我要数据驱动界面,但界面的风吹草动我也要知道,不过我不主动去处理,我只通过数据去改变界面。
绑定提供数据改变,命令提供分离(相对[其实也是借助绑定])
在上一个部分理解命令模式中,我说了大部分控件是现实了Icommandsource的接口,是自带Command和CommandParameter,所以利用绑定技术绑定就行了。在下面的xaml,使用了相对源和指定源的绑定技术(对比最上面的绑定时候代码要多了点东西,改改就好了)
ViewModel
class ViewModel
{
public ICommand Click
{
get
{
return new ViewModelCommand(new Action(DoAction), new Func(CanAction));
}
}
private bool CanAction(object arg)
{
return !(arg is null);
}
private void DoAction(object obj)
{
MessageBox.Show($"Button Content is {obj.ToString()}");
}
}
xaml
截图
当你熟悉MVVM后,你会遇上很多问题,例如带事件参数的command或者提示框等问题。不过都是可以解决的。