將命令繫結到事件中(WPF)

2022-06-11 14:54:10 字數 2252 閱讀 3331

繫結到指定名稱控制項的——>指定屬性上 

**鏈結(王旭部落格 » wpf 在事件中繫結命令   

): (該文章是《關於 mvvmlight 設計模式系列》中的一節)

本文主要介紹如何在wpf中實現將命令繫結到事件中,很多情況下我們都需要在某個事件觸發的時候才去觸發命令,所以將命令繫結到事件上是非常有效的做法,下面我們來接著實現將命令繫結到事件中。

引用system.windows.interactivity.dll程式集之後,我們在view中新增xmlns的引用如下:

xmlns:i="clr-namespace:system.windows.interactivity;assembly=system.windows.interactivity"

這樣我們就可以在view中使用它了,我在 userviewmodel.cs 中編寫了乙個 loaddatacommand 的命令來載入資料。所以按照我們之前所想做的就是在視窗 loaded 載入完之後載入資料,我們就將其命令繫結到  loaded 事件中,**如下:

eventname="loaded">

command=""/>

將這段**放在標籤之中即可,同理如果你要在其他元素中的事件進行繫結,那麼就放到其元素的標籤中即可。

usingsystem;

usingsystem.collections.generic;

usingsystem.collections.objectmodel;

usingsystem.linq;

usingsystem.text;

usingsystem.threading.tasks;

usinggalasoft.mvvmlight;

usingmymodel;

usinggalasoft.mvvmlight.command;

namespacemvvmlightdemo.viewmodel

/************** 屬性 **************/

privateobservablecollection_userdata;

///

/// 使用者資訊資料

///

publicobservablecollectionuserdata

set}

/************* 命令 ***************/

#region 新增乙個使用者命令:addusercommand

///

/// 新增乙個使用者

///

publicrelaycommandaddusercommand

//新增乙個使用者 命令執行方法

voidexecuteadduser()

//小於5條資料時命令可用

boolcanexecuteadduser()

#endregion

#region 刪除乙個使用者命令:deleteusercommand

///

/// 刪除乙個使用者

///

publicrelaycommanddeleteusercommand

//刪除乙個使用者 命令執行方法

voidexecutedeleteuser()

//最少保證有1條資料時命令可用

boolcanexecutedeleteuser()

#endregion

#region 載入資料命令:loaddatacommand

///

/// 載入資料

///

publicrelaycommandloaddatacommand

//載入使用者資料

voidexecuteloaddatacommand()

#endregion}}

這裡我編寫的loaddatacommand與之前寫的命令的區別就是,我的relaycommand只使用了乙個引數,並沒有去做命令的可用性的判斷。

至此,就完成了事件繫結到命令中,很簡單吧!

大家還記得麼,我們程式一共有兩個視窗,是通過mainwindow中的乙個button按鈕點選來開啟的userview視窗。是如何實現的?我們在mainwindow.cs中編寫了buttonclick事件…顯然不符合mvvm的設計模式。

WPF 將控制項繫結到變數

看了好多部落格,發現很多都不能用,嘿嘿,自己終於實現了 廢話不多說,上 xaml 如下 xmlns xmlns x xmlns d xmlns mc mc ignorable d title mainwindow height 350 width 525 loaded window loaded l...

WPF將控制項繫結到集合

什麼是集合檢視?集合檢視是位於繫結源集合頂部的一層,您可以通過它使用排序 篩選和分組查詢來導航和顯示源集合,而無需更改基礎源集合本身。集合檢視還維護著乙個指向集合中的當前項的指標。如果源集合實現了 inotifycollectionchanged 介面,則collectionchanged 事件引發...

WPF新手之如何將資料繫結到TreeView

看過許多例子,全是繫結到類的,沒人說如何繫結到某個物件,偏偏我這個絕對的新手就是要繫結到乙個物件,只能自己摸索了 首先要將資料繫結到容器,有以下幾個預設條件 元資料必須包裝在list或者observablecollection中,後者具有動態更新的功能。即,如果在程式中更改了observableco...