完善主體資料,免費(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无码人妻一区二区三区免费| 无码免费一区二区三区免费播放| 果冻传媒一区二区天美传媒| 日韩一区二区三区免费播放| 精品一区二区AV天堂| 国产精品综合一区二区| 伊人色综合网一区二区三区| 中文字幕人妻AV一区二区| 日韩精品无码中文字幕一区二区| 亚洲一区二区三区AV无码| 日本亚洲国产一区二区三区| 国精产品一区一区三区免费视频| 视频一区二区在线观看| 亚洲一区二区三区国产精品| 香蕉一区二区三区观| 精品免费久久久久国产一区| 丝袜无码一区二区三区| 国产在线无码一区二区三区视频| 精品国产福利第一区二区三区| 亚洲夜夜欢A∨一区二区三区| 国产激情无码一区二区app| 另类免费视频一区二区在线观看 | 国产精品一区在线播放| 精品爆乳一区二区三区无码av| 国产成人一区二区三中文| 精品国产一区二区三区久久狼| 国产aⅴ一区二区| 一区二区视频传媒有限公司| 国产午夜精品一区理论片| 精品国产一区二区三区不卡 | 亚洲Aⅴ无码一区二区二三区软件|