mvvm框架中icommand的用法-創(chuàng)新互聯(lián)

本文將為大家詳細介紹mvvm框架中icommand的用法,代碼詳細步驟清晰,細節(jié)處理妥當,希望大家通過這篇文章有所收獲,我們先來看看ICommand接口類的實現(xiàn):

創(chuàng)新互聯(lián)建站是網(wǎng)站建設專家,致力于互聯(lián)網(wǎng)品牌建設與網(wǎng)絡營銷,專業(yè)領域包括網(wǎng)站制作、成都網(wǎng)站建設、電商網(wǎng)站制作開發(fā)、重慶小程序開發(fā)、微信營銷、系統(tǒng)平臺開發(fā),與其他網(wǎng)站設計及系統(tǒng)開發(fā)公司不同,我們的整合解決方案結(jié)合了恒基網(wǎng)絡品牌建設經(jīng)驗和互聯(lián)網(wǎng)整合營銷的理念,并將策略和執(zhí)行緊密結(jié)合,且不斷評估并優(yōu)化我們的方案,為客戶提供全方位的互聯(lián)網(wǎng)品牌整合方案!
public class RelayCommand : ICommand
   {
     private Action<object> _execute;
     private Predicate<object> _canExecute;

     public RelayCommand(Action<object> execute, Predicate<object> canExecute)
     {
       this._execute = execute;
       this._canExecute = canExecute;
     }

     public event EventHandler CanExecuteChanged
     {
       add
       {
         CommandManager.RequerySuggested += value;
       }
       remove
       {
         CommandManager.RequerySuggested -= value;
       }
     }

     public bool CanExecute(object parameter)
     {
       return _canExecute(parameter);
     }

     public void Execute(object parameter)
     {
       _execute(parameter);
     }
   }

在viewmodel中添加

void UpdateExecute()
     {
       Console.WriteLine("ICommandExecute");
     }
     bool CanUpdateExecute()
     {
       return true;
     }

     private ICommand _doSomething;

     public ICommand DoSomething
     {
       get
       {
         if (_doSomething == null)
         {
           _doSomething = new RelayCommand(p => this.UpdateExecute(), p => this.CanUpdateExecute());
         }
         return _doSomething;
       }
     }

在xaml中用Command來綁定
假設我們用的是RadioButton

<RadioButton Content="{Binding Content}" IsChecked="{Binding IsCheck}" GroupName="RadioButtons" 
Command="{Binding DataContext.DoSomething,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=StackPanel}}"></RadioButton>

注意:

Binding DataContext.DoSomething

這里要用DataContext.
然后要設置一下RelativeSource
不然找不到這個方法會輸出錯誤信息

關于ICommand接口類的實現(xiàn)就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

另外有需要云服務器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。

當前名稱:mvvm框架中icommand的用法-創(chuàng)新互聯(lián)
轉(zhuǎn)載源于:http://bm7419.com/article0/iihio.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站制作電子商務、品牌網(wǎng)站建設網(wǎng)站制作、ChatGPT、手機網(wǎng)站建設

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設公司