91手机视频在线-91手机视频在线观看-91手机在线-91手机在线播放-91手机在线观看

完善主體資料,免費(fèi)贈(zèng)送VIP會(huì)員!
* 主體類型
* 企業(yè)名稱
* 信用代碼
* 所在行業(yè)
* 企業(yè)規(guī)模
* 所在職位
* 姓名
* 所在行業(yè)
* 學(xué)歷
* 工作性質(zhì)
請(qǐng)先選擇行業(yè)
您還可以選擇以下福利:
行業(yè)福利,領(lǐng)完即止!

下載app免費(fèi)領(lǐng)取會(huì)員

NULL

ad.jpg

二次開發(fā)教程:WPF 給控件添加可以綁定的命令

發(fā)布于:2019-07-25 15:07:29

網(wǎng)友投稿

更多

在WPF里的Button有一個(gè)可以綁定的Command的屬性,只要綁定好這個(gè)屬性以后,只要你ClickButton就


會(huì)運(yùn)行這個(gè)命令,但這時(shí)我們可以考慮一下這個(gè)問題,為什么是Click來觸發(fā)呢?為什么不是右鍵單擊來觸發(fā)呢,


下面研究一下,怎么能寫一個(gè)右鍵單機(jī)能觸發(fā)的命令:


首先現(xiàn)有的Button肯定是不行了,所以自己寫一個(gè)TButton ,它繼承自Button


    public class TButton:Button

    {

        public static readonly DependencyProperty TCommandParameterProperty = DependencyProperty.Register("TCommandParameter", typeof(object), typeof(TButton));

        public static readonly DependencyProperty TCommandProperty = DependencyProperty.Register("TCommand", typeof(ICommand), typeof(TButton));

        public static readonly DependencyProperty TCommandTargetProperty = DependencyProperty.Register("TCommandTarget", typeof(object), typeof(TButton));

        public ICommand TCommand

        {

            get

            {

                return (ICommand)GetValue(TCommandProperty);

            }

            set

            {

                SetValue(TCommandProperty, value);

            }

        }

        public object TCommandParameter

        {

            get

            {

                return GetValue(TCommandParameterProperty);

            }

            set

            {

                SetValue(TCommandParameterProperty, value);

            }

        }

        public IInputElement TCommandTarget

        {

            get

            {

                return (IInputElement)GetValue(TCommandTargetProperty);

            }

            set

            {

                SetValue(TCommandTargetProperty, value);

            }

        }


        protected override void OnMouseRightButtonUp(MouseButtonEventArgs e)

        {

            base.OnMouseRightButtonUp(e);

            RoutedCommand rcmd = TCommand as RoutedCommand;

            if(rcmd!=null)

            {

                if(rcmd.CanExecute(TCommandParameter,TCommandTarget))

                {

                    rcmd.Execute(TCommandParameter, TCommandTarget);

                }                

            }

            else

            {

                if(TCommand!=null)

                {

                    if(TCommand.CanExecute(TCommandParameter))

                    {

                        TCommand.Execute(TCommandParameter);

                    }

                }

            }

        }

    }


再寫一個(gè)命令


    public class TCommand : ICommand

    {

        public event EventHandler CanExecuteChanged;

        public bool CanExecute(object parameter)

        {

            return true;

        }

        public void Execute(object parameter)

        {

            Window win = parameter as Window;

            if (win != null)

                win.Close();

        }

    }


再界面里綁定:


        <local:TButton x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="411,277,0,0" VerticalAlignment="Top" Width="75" TCommand="{Binding TCommand}" TCommandParameter="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"/>

本文版權(quán)歸腿腿教學(xué)網(wǎng)及原創(chuàng)作者所有,未經(jīng)授權(quán),謝絕轉(zhuǎn)載。

未標(biāo)題-1.jpg

上一篇:二次開發(fā)教程:WPF DataContent內(nèi)存釋放問題

下一篇:二次開發(fā)教程:WPF 依賴屬性

主站蜘蛛池模板: 最新九九精品 | 一级毛片完整免费版 | 不卡免费视频 | 免费国产最新进精品视频 | 黄色片在线观看免费 | 在线观看人成网站深夜免费 | 青草视频在线观看免费网站 | 日韩在线视频免费看 | 综合亚洲欧美日韩一区二区 | 国产福利合集 | 精品香蕉99久久久久网站 | 1000部羞羞禁止免费观看视频 | 国产午夜免费视频 | 亚洲欧美一区二区三区 | 在线免费观看黄色网址 | 一二三区乱码一区二区三区码 | 在线观看国产免费高清不卡 | 特黄的欧美毛片 | 亚洲色图套图超市 | 精品欧美小视频在线观看 | 无码精品一区二区三区免费视频 | 国产精品久久久久这里只有精品 | 亚洲午夜国产片在线观看 | 日韩高清性爽一级毛片免费 | sese欧美| 亚洲图片国产日韩欧美 | 美国毛片毛片全部免费 | 韩国特黄色免费 | 9久re在线观看视频精品 | 日韩午夜激情视频 | 精品国产欧美一区二区五十路 | 国产最新精品视频 | 亚洲综合色就色手机在线观看 | 日韩在线视精品在亚洲 | 久久精品这里是免费国产 | 国产乳摇福利视频在线观看 | 免费一看一级毛片 | 橘子视频在线观看 | 91精品国产亚一区二区三区 | 成人午夜在线观看国产 | 国产在线视频h |