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

    下載app免費領(lǐng)取會員

    NULL

    ad.jpg

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

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

    網(wǎng)友投稿

    更多

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


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


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


    首先現(xiàn)有的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}}}"/>

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

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

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

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

    主站蜘蛛池模板: 国产精品福利区一区二区三区四区 | 精品国产一区二区三区av片| 亚洲乱码一区二区三区国产精品 | 琪琪see色原网一区二区| 久久婷婷色综合一区二区| 在线一区二区观看| 一区二区三区日韩| 无码一区二区三区在线观看| 国产产一区二区三区久久毛片国语| 亚洲日韩国产一区二区三区在线| 2021国产精品一区二区在线| 国产精品美女一区二区视频 | 国产精品视频免费一区二区| 日韩精品在线一区二区| 一区二区三区无码视频免费福利| 亚洲第一区精品日韩在线播放| 精品无码国产一区二区三区麻豆| 天堂va在线高清一区| 久久久久人妻一区二区三区| 亚洲一区二区影院| 亚洲视频一区网站| 亚洲国产系列一区二区三区| 国产精品揄拍一区二区| 成人中文字幕一区二区三区| 国产美女在线一区二区三区| 亚洲中文字幕一区精品自拍| 无码国产精品久久一区免费| 在线精品一区二区三区电影| 国产一区美女视频| 爆乳熟妇一区二区三区| 伦理一区二区三区| 久久综合九九亚洲一区| 亚洲一区二区三区久久久久| 亚洲熟女综合色一区二区三区| 日韩一区二区三区射精| 人妻无码一区二区视频| 国产美女露脸口爆吞精一区二区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 久久精品国产一区二区三区| 变态拳头交视频一区二区| 亚洲无人区一区二区三区|