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

完善主體資料,免費贈送VIP會員!
* 主體類型
* 企業名稱
* 信用代碼
* 所在行業
* 企業規模
* 所在職位
* 姓名
* 所在行業
* 學歷
* 工作性質
請先選擇行業
您還可以選擇以下福利:
行業福利,領完即止!

下載app免費領取會員

NULL

ad.jpg

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

發布于:2019-07-25 15:07:29

網友投稿

更多

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


會運行這個命令,但這時我們可以考慮一下這個問題,為什么是Click來觸發呢?為什么不是右鍵單擊來觸發呢,


下面研究一下,怎么能寫一個右鍵單機能觸發的命令:


首先現有的Button肯定是不行了,所以自己寫一個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);

                    }

                }

            }

        }

    }


再寫一個命令


    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}}}"/>

本文版權歸腿腿教學網及原創作者所有,未經授權,謝絕轉載。

未標題-1.jpg

上一篇:二次開發教程:WPF DataContent內存釋放問題

下一篇:二次開發教程:WPF 依賴屬性

主站蜘蛛池模板: 久久久久久久久亚洲 | 女人被狂躁的免费视频网站软件 | 日韩欧美一区二区久久黑人 | 一区精品麻豆入口 | 日本黄色一级毛片 | 在线观看国产欧美 | 丁香激情网 | 精品国产午夜久久久久九九 | 国产精品啪 | 九九视频免费在线 | 日日干夜夜爱 | 国产二区三区毛片 | 亚洲视频五区 | 成人精品视频在线 | 在线观看免费黄色小视频 | 成人国产精品久久久免费 | 黄色一级视频免费 | 精品视频在线播放 | 国内毛片| 精品国精品国产自在久国产不卡 | 国产河南妇女毛片精品久久 | 把女人弄爽特黄aa大片视频 | 2021国产麻豆剧传媒精品网站 | 黄色xxx| 亚洲精品 国产 日韩 | 欧美.成人.综合在线 | 色播亚洲精品网站 亚洲第一 | 国产麻豆影院 | 久久综合中文字幕一区二区 | 色视频在线观看 | 精品综合久久久久久99 | 亚洲高清在线观看看片 | 日韩一级一欧美一级国产 | 色爱综合区五月小说 | 久久久亚洲精品蜜桃臀 | 色中文 | 19国产精品麻豆免费观看 | 国产一区二区三区四区偷看 | a毛片全部免费播放 | 国产 日韩 欧美 亚洲 | 最新国产成人盗摄精品视频 |