乙個簡單地MVVM模式實現,直接上碼

2021-06-18 23:03:38 字數 1752 閱讀 6460

queryuser.xaml:

userhandle.cs:

namespace mvvmdemo.model

/// /// 獲取使用者

///

///

public void getuserlist(string username)

/// /// 完成獲取使用者

///

///

///

public void userinfoclient_getuserbynamecompleted(object sender, getuserbynamecompletedeventargs e)

/// /// 定義處理獲取使用者完成後的委託

///

///

public delegate void getuserlisteventhandle(observablecollectionuserlist);

/// /// 將委託和事件關聯

///

public event getuserlisteventhandle getuserlistevent;}}

queryuserviewmodel.cs:

namespace mvvmdemo.viewmodel

set}

}/// /// 查詢結果

///

public observablecollectionresulttext

set}

}/// /// 查詢命令

///

public icommand searchcmd

}#endregion

#region 建構函式

public queryuserviewmodel()

#endregion

#region 方法

/// /// 根據使用者名稱查詢使用者(模糊查詢)

///

public void searchuserbyusername()

}/// /// 根據使用者名稱查詢使用者(模糊查詢)

///

public void searchuserbyusername(string text)

}/// /// 獲取使用者完成事件處理函式

///

///

public void setresult(observablecollectionuserlist)

#endregion}}

queryusercommand.cs:

namespace mvvmdemo.command

/// /// 當出現影響是否應執行該命令的更改時發生。

///

public event eventhandler canexecutechanged;

/// /// 定義用於確定此命令是否可以在其當前狀態下執行的方法。

///

///

///

public bool canexecute(object para)

return true;

}/// /// 定義在呼叫此命令時呼叫的方法。

///

///

public void execute(object para)}}

大致先貼這些,以後再作講解

實現乙個mvvm

最近在團隊內做了一次vue原理分享,現場手寫了乙個乞丐版mvvm,這裡記錄一下這個mvvm實現的過程。原始碼 這個mvvm是基於發布訂閱模式實現 也是vue本身的實現原理 最終達到的效果如下 使用方式也跟vue一樣 重置 實現很簡單 class mvvm options this.methods m...

mvvm實現乙個簡單的vue

vue,基於mvvm模式下的乙個前端框架 mvvm模式下簡單的實現資料 資料劫持 1.是用object.defineproperty 實現資料 2.使用發布訂閱者模式,配合 object.defineproperty,實現資料劫持 資料劫持包括依賴收集和依賴促發 只考慮最簡單的方式,並且沒有包括具體...

自己動手實現乙個MVVM庫

我們知道的,常見的資料繫結的實現方法 1 資料劫持 vue 通過object.defineproperty 去劫持資料每個屬性對應的getter和setter 2 髒值檢測 angular 通過特定事件比如input,change,xhr請求等進行髒值檢測。3 發布 訂閱模式 backbone 通過...